본문 바로가기
프로그래밍/JavaScript

JavaScript의 var, let, const

by choi_9182 2020. 3. 11.

기존에 JavaScript는 변수 선언시

var 로 변수를 선언했다.

 

그리고 ES6 부터는 let 과 const 가 추가되었는데 차이는 var 보다 엄격하고 스코프가 다르다.

 

# 재선언과 재할당

// var는 재선언이 가능하고 재할당도 가능하다
var name = 'ok'
var name = 'ok'
name = 'ok'

// let는 재선언은 안되지만 재할당은 가능하다
let name = 'ok'
name = 'ok'
let name = 'error'

// const는 재선언과 재할당 모두 안된다.
const name = 'ok'
const name = 'error'
name = 'error'

위 예제처럼 var 는 재선언과 재할당 모두 가능하지만

let은 재할당만 가능하고

const는 선언후에는 변경할 수 없다.

 

그래서 const는 상수나 객체로 쓰면 좋고

let은 할당만 바꿀때 사용하면 좋다.

 

 

# 호이스팅 주의점

호이스팅 시에 let은 변수선언이 위로 올라가지 않는다. 이 점 주의해야한다.

 

 

# 스코프 차이

var는 함수스코프이지만

let, const는 블록스코프이므로 {} 밖에서는 유효하지 않는다.

스코프가 var보다 더 한정적이다. 그래서 var의 전역변수 남발을 예방할 수 있다.

 

# 정리 잘 된 참조사이트

https://poiemaweb.com/es6-block-scope

댓글