[javascript] var, let, const의 변수 생성 시점

자바스크립트에서 변수를 생성하는 세 가지 방법으로 var, let, const 키워드를 사용할 수 있습니다. 각각의 키워드는 변수를 생성하는 시점과 변수의 범위에 영향을 미칩니다.

var 키워드

var 키워드는 변수를 함수 스코프로 선언합니다. 함수 스코프 변수는 함수 내에서만 접근할 수 있습니다. var로 선언한 변수는 해당 함수의 맨 위로 끌어올려지며, 이를 “호이스팅”이라고 합니다.

function foo() {
  console.log(a); // undefined
  var a = 5;
  console.log(a); // 5
}

let 키워드

let 키워드는 블록 스코프 변수를 선언합니다. 블록 스코프 변수는 해당 블록 내에서만 접근할 수 있습니다.

{
  let x = 2;
  console.log(x); // 2
}
console.log(x); // ReferenceError: x is not defined

const 키워드

const 키워드는 블록 스코프 상수를 선언합니다. 한 번 할당된 값을 변경할 수 없습니다.

const PI = 3.14;
PI = 3; // TypeError: Assignment to constant variable.

따라서, var는 함수 스코프 변수를 생성하고, letconst는 블록 스코프 변수 및 상수를 생성합니다. 올바른 변수 생성과 범위 확보를 위해 적절한 키워드를 선택하는 것이 중요합니다.