JavaScript

[JavaScript] let, const, var 변수 차이

CHERMINI 2023. 4. 19.

let, const, 그리고 var는 JavaScript에서 변수를 선언하는 방법들로, 각각의 차이점은 다음과 같습니다:

let

let은 블록 범위(block-scoped) 변수로, 특정 블록 내에서만 유효합니다. 블록 범위란 중괄호({})로 감싸진 코드 블록을 의미하며, if 문, for 문, 함수 등에서 사용될 수 있습니다. 또한 let 변수는 재할당이 가능하므로 값을 변경할 수 있습니다.

let x = 10;
if (true) {
  let x = 5;
  console.log(x); // output: 5
}
console.log(x); // output: 10
​

이 예제에서는 let 변수 x를 선언하고 10의 값을 할당합니다. if 블록 내에서 다른 let 변수 x를 선언하고 값 5를 할당합니다. if 블록 내부의 x는 블록 범위를 가지고 있기 때문에 블록 외부의 x 값에는 영향을 주지 않습니다.

const

const는 블록 범위 변수로, let과 마찬가지로 특정 블록 내에서만 유효합니다. 하지만 const 변수는 선언과 동시에 값을 할당하고 이후에는 값을 변경할 수 없습니다. 상수로 사용되기 때문에 값이 고정되어 있어야 합니다.

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

이 예에서는 const 변수 PI를 선언하고 3.14159의 값을 할당합니다. 그런 다음 PI를 3으로 재할당하려고 합니다. 이 경우 const 변수를 재할당할 수 없으므로 TypeError가 발생합니다.

var

var는 전역 범위(global-scoped) 변수로, 스크립트 전체에서 유효합니다. 블록 범위가 아니기 때문에 블록 내에서 선언된 var 변수도 블록 외부에서 접근할 수 있습니다. 또한 var 변수는 재선언 및 재할당이 가능하므로 값이 변경될 수 있습니다.

var x = 10;
if (true) {
  var x = 5;
  console.log(x); // 출력: 5
}
console.log(x); // 출력: 5
​

이 예제에서는 var 변수 x를 선언하고 값을 10으로 할당합니다. 그리고 if 블록 안에서 다시 var 변수 x를 선언하고 값을 5로 할당합니다. var 변수는 블록 범위가 아니기 때문에 블록 내에서 선언된 x도 블록 외부에서 접근할 수 있습니다. 그 결과, console.log(x)를 통해 출력된 값은 5가 됩니다. 마지막으로 console.log(x)를 통해 출력된 값 또한 5가 됩니다. 이는 var 변수가 전역 범위 변수이기 때문입니다.

댓글

💲 추천 글