티스토리 뷰

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함