본 게시물은 한빛미디어의 "모던 자바스크립트 핵심 가이드"(알베르토 몬탈레시 지음)를 공부하면서 작성되었습니다.

 

이전 글: [JS 핵심 가이드] 00. 자바스크립트 기초


01. var, let, const

  • ES6부터 등장한 let과 const
  • 기존에 var로 변수를 선언할 때와의 차이점
    • let과 const는 블록스코프에 종속된다.
  • let과 const의 차이점
    • let: 재할당 (O), 다시 선언(O)
    • const: 재할당 (X), 다시 선언(X)
      • 이 때, const로 선언된 변수가 불변이라는 의미는 아니다.=> 이 경우, 변수 전체(person)를 재할당하는 것이 아니라 그 속성 중 하나만 재할당하는 것이므로 문제가 없다!
//const에 객체가 담겼을 때 
const person = { 
    name: 'Alberto', 
    age: 25 
}; 

person.age = 26; 
console.log(person.age); // 26

                    => 이 경우, 변수 전체(person)를 재할당하는 것이 아니라 그 속성 중 하나만 재할당하는 것이므로 문제가 없다!

 

  • 정리

 

  var let const
스코프 함수스코프 블록스코프 블록스코프
재할당   O X
다시 선언   O X
정의 전 접근? 가능 (undefined의 값을 갖게 됨) but 값에는 접근 불가 불가능(ReferenceError)
* 변수가 선언될 때 까지 일시적으로 비활성구역(TDZ)에 있게 됨. 따라서 초기화전에 변수에 접근하면 오류가 발생 ( -> 디버깅 관점에서 undefined 보다 이득!)
불가능(ReferenceError)

 

 

+ Recent posts