본문 바로가기

Language/Javascript

[Javascript] var vs. let vs. const

[Javascript] var vs. let vs. const 비교

변수 선언 키워드인 var, let, const를 비교해봅니다.

 


 

var

변수명이 동일한 변수를 중복 선언할 수 있습니다.

함수 레벨 스코프 - 함수 외부에서 선언한 변수들은 모두 전역 변수 처리됩니다.

변수 선언문 이전에 참조시 에러는 발생하지 않지만 undefined를 반환합니다.

var box = 1;
var box = 3;  // 가능

 

let

변수명이 동일한 변수를 중복 선언할 수 없지만, 이미 선언된 변수에 값을 재할당할 수 있습니다.

블록 레벨 스코프 - 선언된 코드 블록 내에서만 유효합니다.

런타임 이전에 선언되므로 변수 자체는 존재합니다.

선언 단계와 초기화 단계가 분리되어 진행되므로 선언 전 참조시 에러가 발생합니다.

let box = 1;
let box = 3;  // 불가능
box = 3;  // 가능

 

const

변수명이 동일한 변수를 중복 선언할 수 없으며, 값을 재할당할 수 없습니다.

블록 레벨 스코프 - 선언된 코드 블록 내에서만 유효합니다.

런타임 이전에 실행할 수 없습니다.

선언 단계와 초기화 단계가 동시에 진행됩니다.

const box = 1;
box = 3;  // 재할당 불가
const box = {
	size : 30,
	weight : 100,
};
box.size = 50;  // 변경 가능

 

728x90