[typescript] let과 const 키워드를 사용할 때 호이스팅이 발생하는가요?

letconst는 블록 스코프를 갖는 블록 레벨 변수 선언 방식입니다. 이러한 특성 때문에 호이스팅이 발생하지 않습니다. 이는 변수가 선언된 위치에서 초기화되기 전까지 사용할 수 없다는 것입니다.

예를 들어, 다음 TypeScript 코드를 살펴보겠습니다.

console.log(a); // 오류: 변수 'a'를 참조하기 전에 초기화되었습니다.
let a = 10;

이 코드에서 a를 선언하기 전에 console.log(a)를 호출하면 오류가 발생합니다. 이는 let 키워드로 선언된 변수가 호이스팅되지 않기 때문입니다.

반면 var 키워드로 선언된 변수는 호이스팅이 발생합니다. 예를 들어:

console.log(b); // undefined
var b = 20;

var 키워드로 선언된 변수는 호이스팅으로 인해 선언부가 최상단으로 올라가게 되며, 초기화되기 이전에 변수에 접근하면 undefined가 출력됩니다.

따라서, letconst 키워드를 사용할 때에는 호이스팅이 발생하지 않으므로 변수 선언 전에 변수를 참조하면 오류가 발생하게 됩니다.