하루 30분 모던 자바스크립트 딥 다이브. let, const 키워드

let 키워드

  1. 변수 중복 선언 금지.
  2. 블록 레벨 스코프
  3. 변수 호이스팅
    1. let 키워드로 선언한 변수는 변수 호이스팅이 발생하지 않는 것처럼 동작한다. 하지만 이는 아니다.
    let foo = 1;
    {
    	console.log(foo) //Referenc Error
    	let foo - 2;
    }
    
    b. 변수 호이스팅이 발생하여 위와 같은 결과가 나타난다.
  4. let 키워드로 선언한 변수는 “선언 단계”와 “초기화 단계”가 분리되어 진행된다.
  5. 스코프의 시작지점 부터 초기화 지점까지 변수를 참조할 수 없는 부분을 TDZ(Temporal Dead Zone)이라 한다.
  6. var 키워드로 선언한 전역변수, 전역 함수, 암묵적 전역은 전역 객체 window의 프로퍼티가 된다. 하지만 let 키워드로 선언한 전역 변수는 전역 객체의 프로퍼티가 아니다

const 키워드

  1. 선언과 초기화
    1. const 키워드로 선언한 변수는 반드시 선언과 동시에 초기화 해야한다!
  2. 재할당 금지
  3. 상수
    1. 상수는 재할당이 금지된 변수를 말한다
    2. 재할당이 금지되었을 뿐 “불변”을 뜻하진 않는다.
    3. 따라서 cosnt 변수에 객체를 할당한 경우 값을 변경할 수 있다.

var 키워드는 사용하지 않으며 변수 선언은 기본적으로 const를 사용하고, let은 재할당이 필요한 경우에 한정해 스코프를 최대한 좁게 만들어 사용하는 것이 원칙이다.