'노마드코더의 ES6의 정석' 동영상 강의를 토대로 복습한 내용입니다.
ES6에서 추가된 const, let 변수 선언의 원리를 보다 깊게 알고 있으면 좀 더 명확하고 안전한 개발 할 수 있다.
var good = 'hooo'
var good = 'not bad'
console.log(good)
//출력: not bad
var
는 변수에 재할당, 재선언 전부 가능console.log(good)
var good = 'not bad'
//출력: undefined
var
변수 선언시 호이스팅이 작동한다.hoisting
이 작동하면 에러를 발생시키지 않고 undefined
를 출력한다.const good = 'hooo'
good = 'not bad'
console.log(good)
//출력: Uncaught TypeError: Assignment to constant variable
const
는 변수에 재할당, 재선언 전부 불가console.log(good)
const good = 'not bad'
//출력: Uncaught ReferenceError: good is not defined
const
를 선언하면 TDZ(Temporal Dead Zone)
에 가두기 때문에 다시 초기화 하기 전까지 참조가 불가능하다hoisting
이 작동하면 **ReferenceError**
를 출력한다.let good = 'hooo'
good = 'not bad'
console.log(good)
// 출력: not bad
let
는 변수에 재할당 가능, 하지만 재선언 불가console.log(good)
let good = 'not bad'
// 출력: Uncaught ReferenceError: good is not defined
let
도 역시 변수 선언하면 TDZ(Temporal Dead Zone)
에 가두기 때문에 다시 초기화 하기 전까지 참조가 불가능하다.let
도 const
처럼 hoisting
이 작동하면 **ReferenceError**
를 출력한다.