Programming/JavaScript

[Javascript] var, let, const

코딩뽀시래기 2021. 3. 6. 16:14
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