본문 바로가기

공부/JAVASCRIPT

[ES6] 변수와 상수(let, const)

변수는 let

상수는 const


ES5에서 변수 상수 구분 없이 var하나로 쓰던것과 달리 ES6에서는 변수와 상수를 구분해줬다.






let

var가 let으로 변했다고 생각하면 쉽지만 몇가지 차이점이 있다.


<var의 경우>

var a =1;

var a =2;

=>오류가 나지 않는다.


<let의 경우>

let a =1;

let a =2;

=>SyntaxError : Identifier 'a' has already been declared(구문오류: 식별자 a는 이미 선언된적이있다) 발생


이와 같이 ES6의 let은 이미 선언된 이름으로는 선언 할 수 없다. 하지만 다른 블록 범위{}(if문 등) 내에서는 동일한 이름으로 사용이 가능하다. 이외에도 var와 let은 사용할 수 있는 범위가 다르다고 하는데 더 공부해봐야 알 것 같다.



const

const는 상수로 값이 고정적으로 한번 설정한 값을 바꿀 수 없다.


const a = 1;

a = 2;

=> Error: "a" is read-only(a는 읽기 전용이다) 에러 발생


const a =1;

const a =2;

=>SyntaxError : Identifier 'a' has already been declared(구문오류: 식별자 a는 이미 선언된적이있다) 발생