Programing/javascript

자바스크립트의 var, let, const 차이와 올바른 사용법

2025. 4. 23. 11:11
반응형

자바스크립트를 처음 접하면 가장 헷갈릴 수 있는 부분 중 하나가 변수 선언 방식입니다. var, let, const는 모두 변수를 선언하는 키워드지만, 작동 방식과 사용 범위에서 큰 차이를 보입니다. 이 글에서는 각 키워드의 특징과 차이점을 정리하고, 언제 어떤 키워드를 사용해야 하는지 명확히 이해할 수 있도록 설명합니다.


✨ 1. var — 과거 방식의 변수 선언

var name = "Alice";
  • 재선언 가능: 같은 변수명을 다시 선언해도 오류가 발생하지 않음
  • 재할당 가능: 값을 자유롭게 바꿀 수 있음
  • 함수 스코프(Function Scope): 함수 내부에서만 유효함. 블록(if, for, while) 내에서 선언해도 함수 전체에서 접근 가능
  • 호이스팅(Hosting): 선언이 코드 상단으로 끌어올려짐. 단, 초기화는 끌어올려지지 않음

예시:

console.log(x); // undefined (에러 아님)
var x = 10;

✨ 2. let — 블록 스코프 기반의 변수 선언

let age = 30;
  • 재선언 불가능: 같은 스코프 내에서 같은 변수명을 다시 선언하면 오류 발생
  • 재할당 가능: 값을 바꿀 수 있음
  • 블록 스코프(Block Scope): 선언된 블록 내에서만 유효함
  • 호이스팅은 되지만 TDZ(Temporal Dead Zone) 존재: 선언 전에 접근 시 오류 발생

예시:

console.log(y); // ReferenceError
let y = 20;

✨ 3. const — 상수 선언 (변경 불가)

const PI = 3.14;
  • 재선언 불가능
  • 재할당 불가능: 선언과 동시에 초기화 필수
  • 블록 스코프
  • 객체와 배열은 내부 변경 가능: 단, 참조 값 변경은 불가능

예시:

const arr = [1, 2, 3];
arr.push(4); // 가능
arr = [5, 6]; // TypeError

✅ 언제 무엇을 써야 할까?

키워드 재선언 재할당 스코프주 사용 용도
var 가능 가능 함수 스코프 과거 코드, 호환성용
let 불가 가능 블록 스코프 일반적인 변수 선언
const 불가 불가 블록 스코프 변경되지 않을 값, 상수, 객체

✨ 결론

  • 가능하면 const를 기본값처럼 사용하고, 변경 가능성이 있는 경우에만 let을 사용하세요.
  • var는 레거시 코드 유지보수 외에 사용을 지양하는 것이 좋습니다.
반응형

'Programing > javascript' 카테고리의 다른 글

자바스크립트 비동기 처리 개념 정리(setTimeout, Promise, async/await)  (0) 2025.04.23
자바스크립트 this 키워드 제대로 이해하기 (함수 / 객체 / 클래스에서)  (0) 2025.04.23
자바스크립트 == vs === 비교 연산자의 차이와 올바른 사용법  (0) 2025.04.23
자바스크립트의 데이터 타입 완전 정복 (typeof, null, undefined)  (0) 2025.04.23
javascript 비밀번호 유효성 검사  (0) 2025.04.22
javascript 이메일 유효성 검사  (0) 2025.04.22
국가별 여권번호 유효성 검사  (0) 2025.04.22
윤년 기준으로 날짜 선택 옵션을 자동 변경하는 함수  (0) 2025.04.22
'Programing/javascript' 카테고리의 다른 글
  • 자바스크립트 == vs === 비교 연산자의 차이와 올바른 사용법
  • 자바스크립트의 데이터 타입 완전 정복 (typeof, null, undefined)
  • javascript 비밀번호 유효성 검사
  • javascript 이메일 유효성 검사
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (478)
      • 금융 (61)
      • Programing (295)
        • Algorithm (39)
        • API (2)
        • javascript (122)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (21)
        • MS-SQL (1)
        • MySQL (13)
        • 보안 (5)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (36)
        • 회고 (3)
        • 컬럼 (4)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    읽고 싶은 책
    js패턴
    디자인패턴
    JavaScript
    jsp
    사고 싶은 책
    자바스크립트
    자바스크립트유틸
    기초
    Java
    IT 관련
    SQL
    IT블로그
    위시리스트
    IT·컴퓨터
    자바
    블로그
    It
    php
    iT's MY LiFE
Dongkkase
자바스크립트의 var, let, const 차이와 올바른 사용법
상단으로

티스토리툴바