Skip to content

Files

Latest commit

5c431c6 · Feb 15, 2025

History

History
44 lines (34 loc) · 1.62 KB

Let.md

File metadata and controls

44 lines (34 loc) · 1.62 KB

let

Summary

letvar의 문제점을 해결한 모던한 변수 선언 방식으로, 블록 스코프(block scope)를 가지며, 재선언이 불가능하다.

Details

let의 특징

  • 블록 스코프(block scope): 중괄호 {} 내에서 선언된 변수는 해당 블록 내부에서만 유효하다.
  • 재선언 불가능: 동일한 변수명을 재선언하면 오류가 발생한다.
  • 호이스팅 발생: var처럼 호이스팅되지만, TDZ(Temporal Dead Zone, 일시적 사각지대) 에 의해 선언 전에 접근하면 오류가 발생한다.

예제 코드

if (true) {
    let name = "John";
}
console.log(name); // ReferenceError: name is not defined

위 코드에서 name은 블록 내부에서만 존재하며, 외부에서는 접근할 수 없다.

letvar 비교

console.log(a); // undefined (호이스팅 발생)
var a = 5;

console.log(b); // ReferenceError (TDZ로 인해 접근 불가)
let b = 10;

결론

let은 블록 스코프를 제공하며, var보다 안전한 변수 선언 방식이므로 가변 데이터를 선언할 때 권장된다.

Reference

author note: Related note in this repo

link: External reference