function varExample() {
if (true) {
var x = 5;
}
console.log(x); // 5
}
varExample();
for (var i = 0; i < 3; i++) {
// do something
}
console.log(i); // 3
if (true) {
let y = 10;
}
// console.log(y); // ReferenceError
for (let j = 0; j < 3; j++) {
// do something
}
// console.log(j); // ReferenceError
if (true) {
const z = 20;
}
// console.log(z); // ReferenceError
var는 함수 레벨 스코프를 가지며, 가장 가까운 함수 전체에서 접근 가능하다.
let과 const는 블록 레벨 스코프를 가지기 때문에, 가장 가까운 블록 내에서만 접근 가능하다.