본문 바로가기

프로그래밍 언어/자바스크립트

JavaScript의 let과 const, Modern JavaScript의 핵심 선언문

JavaScript의 let과 const, Modern JavaScript의 핵심 선언문

JavaScript의 변수 선언 방식은 ES6(ECMAScript 2015) 이후로 크게 변화하였습니다. 기존의 var 선언문 대신 letconst가 등장하면서 더 안정적이고 예측 가능한 코드 작성이 가능해졌습니다. 이 글에서는 letconst의 특징과 활용법을 깊이 있게 살펴봅니다.

 

 

목차

  1. let과 const의 등장 배경
  2. let의 특징과 사용법
  3. const의 특징과 사용법
  4. Temporal Dead Zone(TDZ)
  5. 스코프(Scope) 비교: var, let, const
  6. let과 const 활용의 모범 사례
  7. 자주 발생하는 실수와 주의점

 

let과 const의 등장 배경

ES6 이전에는 JavaScript에서 변수를 선언하기 위해 var를 사용했습니다. 하지만 var는 함수 스코프(function scope)로 인해 예기치 않은 동작을 초래하는 경우가 많았습니다. 이를 해결하기 위해 블록 스코프(block scope)를 지원하는 letconst가 도입되었습니다.

 

 

 

let의 특징과 사용법

let은 블록 스코프를 가지며 재할당이 가능합니다. 다음은 주요 특징입니다:

  • 같은 블록 내에서 중복 선언이 불가능합니다.
  • 초기화하지 않아도 선언할 수 있습니다.

예제 코드:

let count;
count = 10;
console.log(count); // 10
    

 

 

 

const의 특징과 사용법

const는 상수를 선언하는 데 사용되며, 선언과 동시에 초기화해야 합니다. 주요 특징:

  • 선언 이후 값을 변경할 수 없습니다.
  • 객체나 배열의 경우, 참조값은 고정되지만 내부 데이터는 변경 가능합니다.

예제 코드:

const name = "JavaScript";
console.log(name); // "JavaScript"

const arr = [1, 2, 3];
arr.push(4);
console.log(arr); // [1, 2, 3, 4]
    

 

 

 

Temporal Dead Zone(TDZ)

TDZ는 변수가 선언되기 전에 접근하려고 하면 ReferenceError가 발생하는 구간을 말합니다. 이는 letconst 모두에 적용됩니다.

예제:

console.log(a); // ReferenceError
let a = 5;
    

 

 

 

 

스코프(Scope) 비교: var, let, const

세 가지 선언문의 스코프를 비교하면 다음과 같습니다:

선언문 스코프 특징
var 함수 스코프 중복 선언 가능
let 블록 스코프 중복 선언 불가능
const 블록 스코프 상수, 재할당 불가

 

 

 

let과 const 활용의 모범 사례

효율적이고 안정적인 코드를 작성하기 위해 다음과 같은 규칙을 따르는 것이 좋습니다:

  • 변경이 필요 없는 값에는 const를 사용합니다.
  • 값이 변경될 가능성이 있다면 let을 사용합니다.
  • 가능한 한 var 사용을 지양합니다.

 

 

 

자주 발생하는 실수와 주의점

초보자들이 흔히 저지르는 실수:

  • 초기화되지 않은 const 선언: SyntaxError를 초래합니다.
  • TDZ에 대한 이해 부족: 선언 전에 변수를 사용하려 하면 오류가 발생합니다.
  • 중복 선언: letconst는 중복 선언을 허용하지 않습니다.