닭발개발

[JS] var와 let 본문

Javascript, jQuery

[JS] var와 let

D269 2023. 10. 18. 10:49
728x90

 

letvar은 JavaScript에서 변수를 선언하는 데 사용되는 두 가지 키워드

 

두 키워드는 스코프 및 호이스팅과 관련하여 중요한 차이가 있습니다.

 

스코프:

  • var는 함수 스코프를 가지고 있습니다. 즉, 변수가 선언된 함수 내에서만 유효하며 함수 외부에서는 접근할 수 없습니다.
  • let은 블록 스코프를 가지고 있습니다. 블록 내에서 선언된 변수는 블록 내에서만 유효하며 블록 외부에서는 접근할 수 없습니다.
function example() {
    if (true) {
        var x = 5; // 함수 스코프
        let y = 10; // 블록 스코프
    }
    console.log(x); // 5
    console.log(y); // ReferenceError: y is not defined
}

 

 

 

 

2. 호이스팅:

  • var는 호이스팅(hoisting)이 발생합니다. 즉, 변수가 선언 전에도 참조할 수 있습니다. 그러나 값은 선언 위치에서 초기화됩니다.
  • let은 호이스팅이 발생하지만, 선언 위치에서 초기화되기 전까지 참조할 수 없습니다.
console.log(a); // undefined
var a = 5;

console.log(b); // ReferenceError: b is not defined
let b = 10;

 

 

 

3.

재선언:

  • var로 선언된 변수는 동일한 스코프 내에서 중복 선언이 허용됩니다.
  • let은 같은 스코프에서 중복 선언이 허용되지 않습니다.
var x = 5;
var x = 10; // 동일한 스코프에서 중복 선언이 허용됨

let y = 5;
let y = 10; // SyntaxError: Identifier 'y' has already been declared

 

 

 

 

 

728x90
반응형