var let const
var
var
문은 변수를 선언하고, 선택적으로 초기화할 수 있습니다.
- 변수 선언하는 예약어
- 같은 변수명 재선언 가능
- 예약어 변수명으로 사용 가능
- 함수 레벨 스코프
- 최근 거의 사용 X
var hello = 'world';
var hello = 'bye'; // 가능
var undefined; // 가능
let
let
명령문은 블록 스코프의 범위를 가지는 지역 변수를 선언하며, 선언과 동시에 임의의 값으로 초기화할 수도 있습니다.
- 변수 선언하는 예약어
- 같은 변수명 재선언 불가능
- 예약어 변수명으로 사용 불가능
- 블록 레벨 스코프
let hello = 'world';
let hello = 'bye'; // 불가능
let undefined; // 불가능
const
const
선언은 블록 범위의 상수를 선언합니다. 상수의 값은 재할당할 수 없으며 다시 선언할 수도 없습니다.
- 상수 선언하는 예약어
- 초기화 필수
- 재선언 불가능
- 재할당 불가능
- 참조 값 내부 값 바꾸는 건 가능
- 블록 레벨 스코프
const name; // 오류
const arr = [1, 2, 3];
arr = [1, 2, 3, 4]; // 오류
const arr = [1, 2, 3];
arr.push(4); // 가능