자바스크립트 ES6의 let, const에 대해 알아보도록 하겠습니다.
'let', 'const' keyword
JS ES5 이전에는 변수를 선언할 때 'var'로 통일하였습니다.
문제점도 많았죠.
1
2
|
var abc = "1234";
var abc = "12345"; // O 가능
|
cs |
var로 변수를 재선언시에는 해당 코드는 문제없이 허용되었습니다.
1
2
|
test = 1
var test = "1234" // O 가능
|
cs |
또한, 해당 문법 또한 호이스팅(Hoisting)으로 허용되었습니다.
(함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 범위 최상단으로 끌어올리는 것)
(어쩌면, 문제점보단 이점으로 보았을지도 모르지만요.)
ES6의 let과 const는 달라졌습니다.
1
2
3
4
5
|
let a = 10;
let a = 20; // X 불가능 (Identifier 'a' has already been declared)
let b = 10;
b = 20; // O 가능
|
cs |
let, cosnt는 block scope로 범위 내에서 선언이 가능하며, 변수의 재선 언도 불가능합니다.
1
2
3
4
5
|
const x = 2;
const x = 3; // X 불가능 (Identifier 'x' has already been declared)
const y = 1; // const는 상수
y = 2; // X 불가능 (Assignment to constant variable.)
|
cs |
그렇다면, let과 const의 차이점이 무엇일까요?
바로 const는 상수입니다. 한번 선언이 된 값에 대해서 변경을 할 수 없습니다.
그 외에 let과 유사합니다.
(let, const 변수 선언 시 호이스팅이 발생하지 않습니다.)
간단하게 ES6의 let, const에 대해 알아보았습니다.
감사합니다.
반응형
'IT > JS' 카테고리의 다른 글
자바스크립트 ES6 Class (0) | 2021.05.21 |
---|---|
자바스크립트 ES6 For/Of Loop (0) | 2021.05.17 |
MosaicFlow 모자익플로우 알아보기 (0) | 2019.02.11 |
자바스크립트 ES6 '=>' 화살표 문법 (Arrow function) (0) | 2019.01.09 |
JavaScript 타임스탬프->날짜변환(Date) / 숫자형 3자리단위 콤마(,) 찍기 (0) | 2018.12.20 |