var, let, const 비교

광로·2024년 3월 9일

JS를 쓰면서 처음에는 헷갈리지만 한번 이해하두면 까먹을일 없을거 같습니다.

가장 큰 차이 -> 함수 스코프

  • var : 함수 스코프
  • let : 블록 스코프
  • const : 블록 스코프
  • 함수 스코프
    -> 함수 내에서 선언된 변수 또는 상수에 접근할 수 있는 범위

  • 블록 스코프
    -> 블록 내에서 선언된 변수 또는 상수에 접근할 수 있는 범위

// 함수 스코프

function sayHello() {
  var name = "John"; // 함수 스코프 변수
  console.log(name); // "John"
}

console.log(name); // ReferenceError: name is not defined

sayHello();

// 블록 스코프

if (true) {
  let age = 20; // 블록 스코프 변수
  console.log(age); // 20
}

console.log(age); // ReferenceError: age is not defined

위를 예시라고 생각 하면 될 거 같음

정리 : 함수 스코프는 함수 내부에서만 유효, 블록 스코프는 블록 내에서만 유효

따라서.

  1. var : 함수 스코프 , 재선언/재할당 가능 , 호이스팅 됨
  2. let : 블록 스코프 , 재선언 불가능, 재할당 가능 , 호이스팅 되지 않음
  3. const : 블록 스코프 , 재선언 / 재할당 불가능 , 호이스팅 되지 않음

만약 실제 사용 할때는

  1. let : 변수의 값이 변경될 가능성이 있거나 , 함수 내부에서만 사용될 때 사용
  2. const : 전역 변수 , 변수의 값이 변경될 가능성이 없을때 사용
profile
많이 느리지만, 포기하지 않는 개발자 (돌에 새기는 느낌 )

0개의 댓글