카테고리 없음

JavaScript ES6: `let`과 `const` 이해하기

2023. 6. 15. 07:57

JavaScript는 ES6 (ECMAScript 2015)에서 letconst라는 두 가지 새로운 변수 선언 키워드를 도입했습니다. 이들은 기존의 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의 letconstvar의 함수 스코프 제한과 재할당 문제를 해결하는 좋은 방법입니다. 각각의 특징을 이해하고 적절하게 사용하면 코드의 안정성과 가독성을 높일 수 있습니다.

 

 

이 블로그 글은 OpenAI의 ChatGPT를 활용하여 작성되었습니다.

반응형