ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • javaScript 중급 #1 - 변수, 호이스팅,TDZ(Temporal DeadZone)
    JavaScript 2022. 4. 25. 15:27

     

     

    변수

    let 

    const

    var 는 선언 하기전에 사용할 수 있다. var 로 선언한 모든 변수는 코드가 실제로 이동하지는 않지만 최상위로 끌어 올려주는 것처럼 해준다 이거를 호이스팅(hoisting) 이라고 한다.

     

    var name;

     

    console.log(name);  // undefined  선언은 호이스팅이 되지만 할당은 호이스팅이 되지 않기 때문이다. name 이라는 변수는 올라가고 Mike는 그대로 있는 것이다.

     

    name = 'Mike'; // 할당 

     

    console.log(name); // ReferenceError

    let name = 'Mike';

     

    같은 상황에서 let 은 오류가 난다.

    호이스팅 : 스코프 내부 어디서든 변수 선언은 최상위에 선언된 것 처럼 행동

    let 과 const 도 호이스팅이 된다. 근데 왜 var 처럼 실행이 안되고 에러가 뜨는가 바로 TDZ(Temporal DeadZone) 때문이다. let 과 const  는 TDZ 영향을 받는다. 할당을 하기전에는 사용할수가 없다.

     

    변수의 생성과정

    1. 선언 단계

    2. 초기화 단계

    3. 할당 단계

     

    var 

    1. 선언 및 초기화 단계 - 초기화 : undefined를 할당 해주는 단계

    2. 할당 단계

     

    let 

    1. 선언 단계

    2. 초기화 단계

    3. 할당 단계

     

    const 

    1. 선언 + 초기화 + 할당

     

     

    var 

    함수 스코프 (function-scoped)

     

    let, const

    블록 스코프(block-scoped) 

    함수, if문, for문, while문, try/catch 문 등

Designed by Tistory.