var, let, const
모두 변수를 선언하는 키워드이다. ES5 까지만 해도 var 변수를 사용했지만, ES6 이후로 let, const가 추가되었다. 그렇다면 차이점에는 어떤 것이 있을까?
간단하게 정리해보면, 아래 표와 같다.
var | let | const | |
재선언 | 가능 | 불가능 | |
재할당 | 가능 | 불가능 | |
스코프 | 함수 스코프 | 블록 스코프 |
1. 변수에 재할당
var의 경우에는 변수 재선언과 재할당이 가능하고, let은 변수에 재할당이 가능한 반면 const는 불가능하기 때문에 immtuable하다고 할 수 있다.
var number = 10
console.log(number) // 10
var number = 20 // 재선언
console.log(number) // 20
number = 30 // 재할당
console.log(number) // 30
let number = 10
let number = 20 // SyntaxError: Identifier 'number' has already been declared.
let number = 10
number = 30 // 재할당
console.log(number) // 30
const number = 10
number = 20 // TypeError: Assignment to constant variable.
2. 스코프 (Scope)
함수 스코프 변수인 var는 생성 단계에서 undefined로 초기화하기 때문에, 선언 시점보다 먼저 사용해도 에러를 발생하지 않는다.
console.log(number)
var number = 10
블록 스코프 변수인 let, const는 생성 단계에서 초기화되지 않기 때문에, 선언 시점보다 먼저 사용할 경우 참조 에러가 난다.
console.log(number) // ReferenceError: Cannot access 'number' before initialization.
let number = 10
728x90
728x90
'Programming > JavaScript' 카테고리의 다른 글
[JavaScript] map(), filter() 같이 사용하기 (0) | 2022.08.21 |
---|---|
[JavaScript] for문에서 setTimeout() 호출 시 var, let 차이 (0) | 2022.08.16 |
[JavaScript] 함수 선언형과 함수 표현식의 차이점 (0) | 2022.08.03 |
[JavaScript] 비동기적 방식 처리 방법 : Callback, Promise, async/await (0) | 2022.07.23 |
[JavaScript] this (0) | 2022.07.19 |