1. 호이스팅


안에있는 변수들을 범위의 최상단으로 끌어올리는 것

자바스크립트는 코드를 읽을 때 선언된 변수들과 함수들을 먼저 읽는다.(호이스팅)

2. javascript 변수선언 3가지


2-1) var

전역변수와 지역변수 개념이 확실하지 않음(함수만 지역변수로 호이스팅이 되고 나머지는 다 전역변수로 올려버림,선언을 다시할 수 있음)

// 호이스팅 개념 때문에 
// 자바스크립트가 코드를 읽을 때 변수나 함수를 먼저 저장해둔다 
console.log(a); // undefined (아직 1로 할당하기전)
// 호이스팅시 변수의 선언과 초기화(undefined) 같이 시켜버림
var a = 1
console.log(a); // 1

2-2) let

재선언 불가능,할당은 가능 (2015년 ES6문법이 나오면서 같이나오게됨)

console.log(a) // Reference Error => a선언문이 나오기 전까진 너는 a에 접근할 수 없어
// TDZ(Temporaliy Dead Zone),즉 일시적 사각지대이기 때문에 a에 접근할 수 없다
let a = 1;
console.log(a)

2-3) const

상수를 만드는 것(재할당 불가능)