let,const vs var[JavaScript]

배동우·2023년 9월 16일

let,const 는 ES6(스크립트언어의 표준,규격)가 등장하면서 함께 등장한 변수 선언 방식
var는 ES6 등장이전 사용하던 변수 선언 방식

차이점

Scope 범위

let

function hello(flag) {
  if (flag) {
    let text = 'hello';
  }
  console.log(text);
}
hello(true);

text is not defined 로 text가 정의 되지 않았다는 오류를 확인 할 수 있다.

var

function hello(flag) {
  if (flag) {
    var text = 'hello';
  }
  console.log(text);
}
hello(true);

hello가 출력되는것을 확인 할 수 있다.

이유는 스코프의 범위 때문인데 let과 const의 경우 블록 스코프로 {} 블록 내에서 정의한 변수의 경우 블록 안에서만 사용할 수 있지만 var의 경우 함수 스코프로 블록 내에서 정의한 변수라도 함수 범위 내에서 사용할 수 있다.

초기화

let

function hello(flag) {
  console.log(text);
  if (flag) {
    let text = 'hello';
  }
}
hello(true);

var

function hello(flag) {
  console.log(text);
  if (flag) {
    var text = 'hello';
  }
}
hello(true);

간단하게 설명하자면 JavaScript에서 변수를 선언할 때 선언, 초기화, 할당의 과정을 거친다.
var의 경우 호이스팅 과정에서 변수의 선언, 초기화까지 진행하기 때문에 undefined를 출력하고
let과 const의 경우 호이스팅 과정에서 선언만 진행되기 때문에 참조 오류가 발생한다.

profile
강아지를 키우는 프론트엔드 개발자 ٩(๑•̀o•́๑)و

0개의 댓글