꾸준히 합시다
var, let, const의 차이점 본문
ES6 출현 이전에 JavaScript에서 변수를 선언할 수 있는 방법은 var 키워드를 사용하는 것이 유일했다. ES6 이후 var 키워드의 단점을 보완하기 위해 let, const 키워드가 도입되었다.
var, let, const의 차이점
- var는 함수 스코프를 따르고 let과 const는 블록 스코프를 따른다.
- var 키워드로 선언된 변수는 함수 레벨의 스코프를 따르게 되며, 전역 함수 외부에서 생성된 변수는 모두 전역 변수로 간주된다.
- 반면에 블록 스코프를 따르는 키워드 let과 const로 선언된 변수는 코드 블록 내에서만 사용 가능하며, 가장 가까운 중괄호(function, if-else 블록, for-loop, try/catch 등) 내에서만 접근할 수 있다.
- var
- 변수의 중복 선언이 가능하기 때문에 코드량이 많아질 경우 의도치 않은 에러 상황이 발생할 수 있다.
- 선언되기 전에 참조될 수 있지만 이 경우 undefined를 반환한다.
- let
- 재선언은 불가능하지만 재할당은 가능하다.
- const
- 변수의 재선언, 재할당 모두 불가능하다. 재할당할 수 없다는 점이 let과는 다르다.
- 중복 선언, 재할당 모두 불가능하기에 선언과 초기화를 동시에 진행해야 한다.
- 변하지 않는 고정 값에 대해서는 const를 사용하는 것이 코드의 가독성을 높이고 유지보수에 도움이 되기에 적극적으로 사용하는 것이 바람직하다.
window 객체 요소 추가
추가적으로 var를 사용해 전역 변수를 생성하면 window 객체에 key와 value로 추가되지만 let이나 const를 이용해 전역 변수를 만든다 해도 window 객체에 추가되지는 않는다.
var a = "apple";
console.log(window.a); // "apple"
let b = "banana";
console.log(window.b); // undefined
const c = "strawberry";
console.log(window.c); // undefined
'자바스크립트 기초' 카테고리의 다른 글
모던 자바스크립트 Deep Dive 내용 정리 - 04장 변수 (0) | 2022.08.03 |
---|---|
Array.prototype.sort() 특정 기준으로 정렬하기 + Sequelize ORM (0) | 2022.07.21 |
변수: 선언, 초기화, 할당 (0) | 2022.06.01 |
call by value, call by reference in JS (0) | 2021.12.21 |
스코프와 호이스팅 Scope and Hoisting (0) | 2021.12.03 |
Comments