[웹 개발 기초 자바스크립트] 2.변수의 참조 범위(scope)

Shy·2023년 8월 21일
0

NodeJS(Express&Next.js)

목록 보기
2/39

var: 함수 레벨 스코프 (Function-level scope)

  • var로 선언된 변수는 가장 가까운 함수의 전체 범위에서 사용할 수 있다. (function안에서 접근 가능)
  • 블록(예: if문, for문) 내에서 var로 변수를 선언하면 해당 블록과 상관없이 함수 전체에서 접근 가능하다.
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

let: 블록 레벨 스코프 (Block-level scope)

  • let으로 선언된 변수는 가장 가까운 블록(중괄호 {}) 내에서만 사용할 수 있다.
  • 따라서 let은 if문, for문, while문 등의 블록 내에서 선언된 경우, 해당 블록 밖에서는 접근할 수 없다.
if (true) {
    let y = 10;
}
// console.log(y);  // ReferenceError

for (let j = 0; j < 3; j++) {
    // do something
}
// console.log(j);  // ReferenceError

const: 블록 레벨 스코프 (Block-level scope)

  • const도 let과 마찬가지로 블록 레벨 스코프를 가진다.
  • 차이점은 const로 선언된 변수는 재할당이 불가능하다는 것이다.
if (true) {
    const z = 20;
}
// console.log(z);  // ReferenceError

요약

var는 함수 레벨 스코프를 가지며, 가장 가까운 함수 전체에서 접근 가능하다.

let과 const는 블록 레벨 스코프를 가지기 때문에, 가장 가까운 블록 내에서만 접근 가능하다.

profile
초보개발자. 백엔드 지망. 2024년 9월 취업 예정

0개의 댓글