변수 선언 키워드인 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
'Language > Javascript' 카테고리의 다른 글
[Javascript] 일반함수 function vs. 화살표함수 arrow function 비교 (2) | 2024.05.31 |
---|