var vs let vs const

김재범·2022년 8월 15일
0

var / let / const

가장 큰 차이점은 재할당, 재선언의 여부

var는 재할당 가능, 재선언 가능

let은 재할당 가능, 재선언 불가능한 변수

const는 재할당 불가, 재선언 불가능한 변수

let과 const의 차이점은
const로 선언한 변수는 데이터를 변경할 수 없다는 것이다.
여기서 변경할 수 없는 데이터를 상수라고 부른다.

호이스팅 문제

호이스팅이란 변수, 함수가 선언되기 전에 변수명, 함수명을 알고 있는 것을 의미한다.
세 변수 모두 호이스팅은 되지만, let과 const는 선언전까지 변수에 접근이 불가능

var는 function-scoped
let과 const는 block scoped

c = "test"   // ReferenceError : c is not defined
let c

이런 에러가 발생하는 이유는
let은 값을 할당하기 전에 변수가 선언 되어있어야 하는데 그렇지 않기 때문이다.(temporla dead zone)

const는 좀더 엄격하다

// let은 선언하고 나중에 값을 할당이 가능하지만
let dd
dd = 'test'

// const 선언과 동시에 값을 할당 해야한다.
const aa // Missing initializer in const declaration

참조
https://gist.github.com/LeoHeo/7c2a2a6dbcf80becaaa1e61e90091e5d
https://www.youtube.com/watch?v=61iolhWgQt0

profile
지식을 쌓고 있습니다.

0개의 댓글