자바스크립트는 실행전 저장 되어 있는 변수를 먼저 확인합니다.(메모리에 기억을 해둠)
함수가 실행 되기전 범위에 최상단으로 끌어 올리는것 (호이스팅)
console.log(a); // undefind 가 출력이됩니다.
var a = 1;
console.log(a); // 1 이 출력이 됩니다
가능한 이유는 호이스팅
호이스팅은 변수의 선언과 초기화(undefined)를 같이 선언해버림
이후에 할당을 함
for (var i = 1; i < 5; i++) {
console.log(i);
}
console.log(i);
// 1234 5 까지 출력 되버리는 문제가 발생합니다
var a = 1;
console.log(a);
var a = 2;
console.log(a);
// 작동이 되버리는 문제가 발생
let a = 1;
console.log(a);
let a = 2;
console.log(a);
// let 사용시 작동이 되지않음