티스토리 뷰
const와 let은 ES6부터 생긴 문법이고, var은 그전부터 사용하던 구문이다.
각 키워드에 대한 내용을 알아보자.
var
1. 같은 변수명으로 재선언이 가능하다.
var variable = "variable1";
var variable = "variable2";
2. 변수 선언 위치보다 이전의 위치에서 사용하더라도 참조오류가 발생하지 않는다. (대신 값은 undefined)
hoisting 개념st와 let은 ES6부터 생긴 문법이고, var은 그전부터 사용하던 구문이다.
각 키워드에 대한 내용을 알아보자.
var
1. 같은 변수명으로 재선언이 가능하다.
var variable = "variable1";
var variable = "variable2";
2. 변수 선언 위치보다 이전의 위치에서 사용하더라도 참조오류가 발생하지 않는다. (대신 값은 undefined)
console.log(variableVar); // 오류가 없음
console.log(variableConst); // ReferenceError
console.log(variableLet); // ReferenceError
var variableVar = "var";
const variableConst = "const";
let variableLet = "let";
let, const가 hoisting되지 않는것은 아니다.
단 선언된 위치 이전은 TDZ(Temporal Dead Zond, 스코프 시작 지점부터 초기화 지점 전까지의 구간)라는 영역에 속하게 된다. (호이스팅, TDZ는 추후 포스팅할 계획)
3. function-scope이다.
- 활동 범위가 선언된 해당 function의 유효영역 전체이다.
- block영역에서 선언되더라도 해당 block에 속한 function전체에서 사용할 수 있다.
let
1. 같은 변수명으로 재선언이 불가능하다.
2. 변수 선언 이후 재할당이 가능하다.
let variable;
let variable; //오류
variable = "let";
3. block-scope이다.
- 활동 범위는 선언 된 해당 블록의 유효영역이다.
const
1. 같은 변수명으로 재선언이 불가능하다.
2. 변수 선언과 동시에 초기값을 할당해야 한다.
3. 변수에 데이터를 할당하면 이후 재할당이 불가능하다.
4. block-scope이다
const variable; //오류
const variable = "const";
const variable = "const2"; //오류
'javascript' 카테고리의 다른 글
Event Loop (0) | 2021.05.11 |
---|---|
closer function (0) | 2021.04.28 |
Hoisting (0) | 2021.04.20 |
Javascript 오버라이딩 (0) | 2021.04.12 |
[JS] Scope (0) | 2021.03.29 |