본문 바로가기
Web/Javascript

[javascript] 변수/상수 - var, let, const

by juein 2018. 3. 1.

var로 변수 선언시 이미 만들어진 변수이름으로 재선언을 해도 문제가 발생하지 않음


var a = 'test'
var a = 'test2'


// hoisting으로 인해 ReferenceError에러가 안난다.
c = 'test'
var c


위 상황이면 기존에 사용하고있던 변수명의 사용여부를 모르고 변수 재선언을 하여 프로그램이 꼬이게 될 가능성이 크다.

이러한 문제점의 해결방안으로 es6에서 let, const 가 추가됨


let : 변수 재할당은 가능하지만, 변수 재선언은 불가능
const : 상수. 재선언, 재할당 모두 불가능

// let 사용
let a = 'test'
let a = 'test2' // <-- SyntaxError
a = 'test3' // 에러안남

// const 사용
const b = 'test'
const b = 'test2' // <-- SyntaxError
b = 'test3' // <-- TypeError


요약

const : 상수 , 값 재정의 x. 값이 안변하면 디폴트로 쓰자

let : 변수, 호이스팅을 타지 않음

var : 호이스팅이 일어나니 절대 사용X

댓글0