-
javaScript 중급 #1 - 변수, 호이스팅,TDZ(Temporal DeadZone)JavaScript 2022. 4. 25. 15:27

변수
let
const
var 는 선언 하기전에 사용할 수 있다. var 로 선언한 모든 변수는 코드가 실제로 이동하지는 않지만 최상위로 끌어 올려주는 것처럼 해준다 이거를 호이스팅(hoisting) 이라고 한다.
var name;
console.log(name); // undefined 선언은 호이스팅이 되지만 할당은 호이스팅이 되지 않기 때문이다. name 이라는 변수는 올라가고 Mike는 그대로 있는 것이다.
name = 'Mike'; // 할당
console.log(name); // ReferenceError
let name = 'Mike';
같은 상황에서 let 은 오류가 난다.
호이스팅 : 스코프 내부 어디서든 변수 선언은 최상위에 선언된 것 처럼 행동
let 과 const 도 호이스팅이 된다. 근데 왜 var 처럼 실행이 안되고 에러가 뜨는가 바로 TDZ(Temporal DeadZone) 때문이다. let 과 const 는 TDZ 영향을 받는다. 할당을 하기전에는 사용할수가 없다.
변수의 생성과정
1. 선언 단계
2. 초기화 단계
3. 할당 단계
var
1. 선언 및 초기화 단계 - 초기화 : undefined를 할당 해주는 단계
2. 할당 단계
let
1. 선언 단계
2. 초기화 단계
3. 할당 단계
const
1. 선언 + 초기화 + 할당
var
함수 스코프 (function-scoped)
let, const
블록 스코프(block-scoped)
함수, if문, for문, while문, try/catch 문 등
'JavaScript' 카테고리의 다른 글
피보나치 수열 (0) 2022.05.11 JavaScript 중급 #2 - 생성자 함수 (0) 2022.04.25 javaScript 기초 #14 - 배열 (Array) (0) 2022.04.25 javaScript 기초 #13 - 객체(Obiect)- method,this (0) 2022.04.25 JavaScript 기초#12 - 객체(Object) (0) 2022.04.25