on
2. 자바스크립트(JavaScript) 기초 문법(2)
2. 자바스크립트(JavaScript) 기초 문법(2)
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, let은 제할당이 가능하고 const 는 재할당이 불가능합니다.
var, let 은 변수 선언시 초기 값을 주지 않아도 되지만 const 는 반드시 초기값을 할당해야 합니다.
from http://rosie0418.tistory.com/14 by ccl(A) rewrite - 2021-09-23 13:27:18