변수 선언 시 사용하는 var, let, const
변수 |
중복 선언 |
재할당 |
var |
O |
O |
let |
X |
O |
const |
X |
X |
var
- 중복선언/재할당 가능
- 마지막에 할당된 값이 변수에 저장
var greeting = 'hello';
console.log(greeting); // hello
var greeting = 'hi';
console.log(greeting); // hi 중복선언 가능
greeting = 'nice to meet you';
console.log(greeting); // nice to meet you 재할당 가능
let
let greeting = 'hello';
console.log(greeting); // hello
let greeting = 'hi';
console.log(greeting); // hi
// Uncaught SyntaxError: Inentifier 'greeting' has been declared
// 처음에 이미 hello로 선언되었기 때문에 hi로 중복선언 불가
greeting = 'nice to meet you';
console.log(greeting); // nice to meet you 재할당은 가능
const
- 중복선언, 재할당 모두 불가
- but, 배열과 객체의 값을 변경하는 것은 가능
let greeting = 'hello';
console.log(greeting); // hello
let greeting = 'hi';
console.log(greeting); // hi
// Uncaught SyntaxError: Inentifier 'greeting' has been declared
// 처음에 이미 hello로 선언되었기 때문에 hi로 중복선언 불가
greeting = 'nice to meet you';
console.log(greeting);
// Uncaught TypeError: Assignment to constant variable 재할당 불가
const arrayList = [1, 2, 3];
arrayList.push(4);
console.log(arrayList);
const objectList = { a: 'a', b: 'b' };
objectList.c = "c"
console.log(objectList);