[JS] var / let / const 차이

merci·2023년 1월 29일
0

JavaScript

목록 보기
2/15

var / let / const 차이

var 타입의 단점

  • 함수 레벨 스코프 -> 함수 외부의 변수는 모두 전역변수 -> 전역변수를 남발

  • var 키워드 생략 -> 암묵적 전역변수를 양상할 가능성

  • 변수 중복 선언 허용 -> 의도하지 않은 변수값 변경

  • 변수 호이스팅 -> 변수 선언하기 전에 참조가능

이러한 대부분의 문제는 전역변수 때문에 발생, 변수의 스코프는 좁을수록 좋다

var 타입의 문제를 해결하기 위해서 ES6 은 letconst 를 도입


let 의 특징

  • 블록 레벨 스코프

  • 변수 중복 선언 금지

  • 호이스팅

let foo = 1; // 전역 변수

{
  console.log(foo); // ReferenceError: foo is not defined
  let foo = 2; // 지역 변수
}

블록내부에서 foo 는 후에 선언 되었으므로 참조에러가 발생


const 의 특징

  • let 과 대부분 동일

  • let 은 재할당 자유, const 는 재할당 불가 - 선언시에 할당해야함

  • 재할당이 불가능하므로 상수로 이용된다

  • const타입의 객체가 생성되면 객체 내부의 프로퍼티는 변경될 수 있다


권장하는 변수 사용법

  • const 를 기본적으로 사용 + 재할당이 필요한 경우 let 사용

  • 부득이한 경우가 아니면 var 는 사용하지 않는다

profile
작은것부터

0개의 댓글