Javascript/[유튜버] 코딩앙마 Javascript 중급 강좌
자바스크립트 중급 강좌 #1 - 변수, 호이스팅, TDZ(Temporal Dead Zone)
랜덤다이스
2022. 12. 19. 11:50
변수의 종류
let
const
var
var는 한번 선언된 변수를 다시 선언 할 수 있다.
var name = 'Mike';
console.log(name); //Mike
var name = 'Jane';
console.log(name); //Jane
호이스팅(hoisting) : 스코프 내부 어디서든 변수 선언은 최상위에 선언된 것 처럼 행동.
var 호이스팅 예)
var name; // 호이스팅
console.log(name); // undefined
name = 'Mike';
undefined 되는 이유 : var는 선언은 호이스팅 되지만 할당은 호이스팅 되지 않음.
let, const 호이스팅 예)
console.log(name); // ReferenceError
let name = 'Mike';
ReferenceError 되는 이유 : TDZ(Temporal Dead Zone) 때문에
변수 생성 과정
변수의 생성 과정 | var | let | const |
1. 선언 단계 | 1. 선언 단계 & 초기화(undefined를 할당) 단계 | 1. 선언 단계 | 1. 선언 단계 & 초기화(undefined를 할당) 단계 & 할당 단계 |
2. 초기화 단계 | 2. 초기화 단계 | ||
3. 할당 단계 | 2. 할당 단계 | 3. 할당 단계 |
스코프
var : 함수 스코프(function-scoped)
let, const : 블록 스코프(block-scoped)
(함수, if문, for문, while문, try/catch문 등)
var 대신 let과 const 사용 권함.
예측 가능한 결과를 내고, 버그를 줄일수 있음.
출처 : https://youtu.be/ocGc-AmWSnQ