{
let a = 10
{
let a = 20
console.log(a)
}
console.log(a)
}
console.log(a)
function hasValue (p) {
console.log(v)
if (p) {
var v = 'blue'
console.log(v)
} else {
var v = 'red'
console.log(v)
}
console.log(v)
}
hasValue(10)
function hasValue (p) {
console.log(v)
if (p) {
let v = 'blue'
console.log(v)
} else {
let v = 'red'
console.log(v)
}
console.log(v)
}
hasValue(10)
console.log(a)
if (true) {
var a = 10
if (true) {
var a = 20
console.log(a)
}
console.log(a)
}
console.log(a)
console.log(a)
if (true) {
let a = 10
if (true) {
const a = 20
console.log(a)
}
console.log(a)
}
console.log(a)
if (true) {
let a = 10
if (true) {
console.log(a)
const a = 20
}
console.log(a)
}
console.log(a)
=> TDZ
var value = 0
var obj = {
value: 1,
setValue: function () {
this.value = 2;
(function () {
this.value = 3
})();
}
}
obj.setValue()
console.log(value)
console.log(obj.value)
왜 다르게 나올까?
var value = 0
var obj = {
value: 1,
setValue: function () {
var self = this
self.value = 2;
(function () {
self.value = 3
})()
}
}
obj.setValue()
console.log(value)
console.log(obj.value)
let value = 0
let obj = {
value : 1,
setValue : function () {
this.value = 2
{
this.value = 3
}
}
}
obj.setValue()
console.log(value)
console.log(obj.value)
var sum = 0
for (let i = 1 ; i <= 10 ; i++) {
sum += i
}
console.log(sum)
console.log(i)
{
let a = 2
if (a > 1) {
let b = a * 3
console.log(b)
} else {
let b = a / 3
console.log(b)
}
console.log(b)
}
console.log(a)
if (Math.random() < 0.5) {
let j = 0
console.log(j)
} else {
let j = 1
console.log(j)
}
console.log(j)
let a = Math.ceil(Math.random() * 3)
switch (a) {
case 1: {
let b = 10
console.log(a + b)
break
}
case 2: {
let b = 20
console.log(a + b)
break
}
case 3: {
let b = 30
console.log(a + b)
break
}
}
console.log(a, b)