JavaScript는 ES6 (ECMAScript 2015)에서 let
과 const
라는 두 가지 새로운 변수 선언 키워드를 도입했습니다. 이들은 기존의 var
키워드를 보완하고, 변수의 스코프와 재할당 가능성에 대한 더 많은 제어를 제공합니다.
let
블록 스코프 변수 선언
let
키워드는 블록 스코프(block scope) 변수를 선언합니다. 블록 스코프란, 변수가 선언된 블록 {}
내에서만 변수가 유효하다는 것을 의미합니다.
let x = 10;
if (true) {
let x = 20;
console.log(x); // 20
}
console.log(x); // 10
위 코드에서, 두 번째 console.log(x)
는 블록 외부의 x
를 참조하므로, 결과는 10
입니다.
let
으로 선언된 변수는 재할당이 가능합니다. 즉, 동일한 변수에 다른 값을 할당할 수 있습니다.
let x = 10;
console.log(x); // 10
x = 20;
console.log(x); // 20
const
상수 선언
const
키워드는 상수(constant)를 선언하는데 사용됩니다. 상수는 한 번 할당되면 그 값이 변하지 않는 변수를 의미합니다.
const PI = 3.14;
console.log(PI); // 3.14
const
로 선언된 변수에 다른 값을 재할당하려고 하면 에러가 발생합니다.
const PI = 3.14;
PI = 3; // TypeError: Assignment to constant variable.
const
키워드 역시 let
과 마찬가지로 블록 스코프를 가집니다.
const PI = 3.14;
if (true) {
const PI = 3;
console.log(PI); // 3
}
console.log(PI); // 3.14
하지만 주의할 점은, const
로 선언된 객체나 배열은 그 구성요소를 변경하는 것이 가능하다는 점입니다.
const arr = [1, 2, 3];
arr.push(4);
console.log(arr); // [1, 2, 3, 4]
const obj = { a: 1 };
obj.b = 2;
console.log(obj); // { a: 1, b: 2 }
결론
ES6의 let
과 const
는 var
의 함수 스코프 제한과 재할당 문제를 해결하는 좋은 방법입니다. 각각의 특징을 이해하고 적절하게 사용하면 코드의 안정성과 가독성을 높일 수 있습니다.
이 블로그 글은 OpenAI의 ChatGPT를 활용하여 작성되었습니다.
반응형