728x90
var, let, const의 차이에 대해 알아보자.
● 변수 선언 방식에 따른 차이
1) var
: 앞에서 선언된 변수명과 동일한 변수명으로 선언해도 에러가 발생하지 않는다.
var name = "mimi";
console.log(name); //mimi
var name = "citi";
console.log(name); //citi
2) let
: 동일한 변수명으로 재선언은 불가능하지만 변수의 값을 재할당하는 것은 가능하다.
let name = "mimi";
console.log(name); //mimi
let name = "citi";
console.log(name); //Error!!
name = "titi";
console.log(name); //titi
3) const
: 동일한 변수명으로 재선언 하는 것도 불가능하고, 변수의 값을 재할당하는 것도 불가능하다.
const name = "mimi";
console.log(name); //mimi
const name = "citi";
console.log(name); //Error!!
name = "titi";
console.log(name); //Error!!
● 호이스팅에 따른 차이
* 호이스팅: var, function 선언문 등을 해당 스코프의 선두로 옮긴 것처럼 동작하는 것
=> 자바스크립트는 모든 선언을 호이스팅한다.
그러나 let은 var와 달리 선언문 이전에 참조하면 참조 에러가 발생한다.
변수는 '선언 -> 초기화 -> 할당'에 걸쳐 생성되는데, var는 선언과 초기화가 동시에 되고, let은 분리되어있기 때문.
1) var
console.log(foo); //undefined
var foo;
console.log(foo); //undefined
foo = 1;
console.log(foo); //1
2) let
console.log(soo); //Error
let soo;
console.log(soo); //undefined
soo = 1;
console.log(soo); //1
★ 정리
재할당 필요 -> let 사용
재할당 필요 X -> const 사용
728x90
'Programming > JavaScript' 카테고리의 다른 글
[Javascript] prompt (0) | 2021.03.15 |
---|---|
[Javascript] 조건문 (0) | 2021.03.09 |
[Javascript] 연산자 (0) | 2021.03.09 |
[Javascript] 숫자와 문자 (0) | 2021.03.09 |
[Javascript] export와 import (0) | 2021.03.09 |