728x90
반응형
개요
var, let, 그리고 const는 JavaScript (및 Node.js)에서 변수를 선언할 때 사용하는 키워드들입니다. 이들의 주요 차이점을 아래에 정리하였습니다:
Scope (범위):
var
Function scope입니다. 즉, 변수는 선언된 함수 내에서 액세스할 수 있습니다. 함수 외부에서 선언된 경우 전역 범위를 갖습니다.
let과 const
Block scope입니다. 즉, 중괄호 {} (예: if 문, for 루프 등) 내에서 선언된 변수는 해당 블록 내에서만 액세스할 수 있습니다.
Reassignment (재할당):
- var와 let: 변수에 새로운 값을 재할당할 수 있습니다.
- const: 한 번 값을 할당하면 재할당할 수 없습니다. 그러나 const로 선언된 객체의 프로퍼티는 변경할 수 있습니다.
Hosting (호이스팅):
var
변수 선언이 해당 범위의 최상단으로 "호이스팅"됩니다. 그러나 초기화는 원래 선언된 위치에서 이루어집니다.
let과 const
호이스팅 되기는 하지만, 선언 전에 액세스하려고 하면 ReferenceError가 발생합니다. 이를 "Temporal Dead Zone"이라고도 합니다.
Global Object Property:
var
전역 범위에서 var로 변수를 선언하면, 그 변수는 전역 객체 (브라우저에서는 window, Node.js에서는 global)의 프로퍼티로 설정됩니다.
let과 const
전역 객체의 프로퍼티로 설정되지 않습니다.
사용 권장 사항
- 일반적으로 변수를 재할당할 필요가 없는 경우 const를 사용하는 것이 좋습니다.
- 재할당이 필요한 경우에는 let을 사용하고, var는 최대한 피하는 것이 현대의 JavaScript 개발 스타일과 일치합니다.
728x90
반응형
'ProgrammingLang > Javascript' 카테고리의 다른 글
[javascript] module 시스템 (0) | 2022.04.29 |
---|---|
[javascript] 9. event 사용 및 event 모델 정리 (0) | 2018.10.20 |
[javascript] 8. 객체 모델 정리 (0) | 2018.10.20 |
[javascript] 7. 자바스크립트 생성자 함수와 프로토타입 (0) | 2018.10.08 |
[javascript] 6. 자바스크립트 값 복사와 참조 복사 그리고 clone (0) | 2018.10.07 |