선언 키워드
var, let, const 의 차이점
ES5까지는 변수를 선언할 수 있는 키워드가 var 뿐이었고, ES6에서 let, const 키워드가 추가되어 이를 이용하여 변수를 선언할 수 있습니다.
var는 함수 레벨 스코프이고 let, const 는 블럭 레벨 스코프입니다.
var 로 선언한 변수는 선언 전에 사용해도 에러가 나지 않지만 let, const는 에러가 발생합니다.
console.log(num) // undefined var num = 10
- 위의 코드의 실행단계는 var num 으로 먼저 선언이 되고 console.log(num)에는 아무런 값이 없으므로 undefined 상태로 결과가 출력됩니다. 마지막으로 var num = 10 여기에서 할당이 일어나게 됩니다.
console.log(age) // Error let age = 40 console.log(age) // 40
- 위 코드의 실행단계는 let age 으로 먼저 선언이 되면 TDZ안으로 들어 가게 됩니다.
- 값이 할당되지 않은 상태로 TDZ에 들어간 age변수는 console.log를 사용해 출력하면 오류가 발생하게 됩니다.
- 이러한 실행 순서는 const도 동일하게 실행됩니다.
TDZ(T)란?
변수에 도달 할 수 없는 상태를 의미
TDZ에 위치하고 있는 값들은 할당전에 접근 할 수 없음
- 위의 코드의 실행단계는 var num 으로 먼저 선언이 되고 console.log(num)에는 아무런 값이 없으므로 undefined 상태로 결과가 출력됩니다. 마지막으로 var num = 10 여기에서 할당이 일어나게 됩니다.
var, let은 제할당이 가능하고 const 는 재할당이 불가능합니다.
var, let 은 변수 선언시 초기 값을 주지 않아도 되지만 const 는 반드시 초기값을 할당해야 합니다.
var 은 이미 선언되어 있는 이름과 같은 이름으로 변수를 다시 선언해도 에러가 나지 않지만 let, const 는 이미 존재변수와 같은 이름의 변수를 선언하게 되면 오류가 발생합니다.
최근에는 const를 사용하는 것을 권장합니다.
const 는 한번 선언 후 값을 변경 할 수 없기 때문에 값의 흐름이 눈에 잘 보이고 안전하기 때문입니다.
'IT > JavaScript' 카테고리의 다른 글
5. 자바스크립트(Java Script) 조건문(2) (0) | 2021.09.26 |
---|---|
4. 자바스크립트(JavaScript) 조건문(1) (0) | 2021.09.26 |
3. 자바스크립트(JavaScript) 기초 문법(3) (0) | 2021.09.26 |
* JavaScript 개발 환경 구성하기 (0) | 2021.09.24 |
1. 자바스크립트(JavaScript) 기초 문법(1) (0) | 2021.09.22 |