-
[JavaScript] var let const 차이점JavaScript 2022. 8. 8. 17:56
자바스크립트에서 변수를 선언할 때 키워드로는 var, let, const가 있다.
let과 const는 ES6에 추가된 키워드이다.
var let const Function-level scope
재선언 가능
재할당 가능Block-level scope
재선언 불가능
재할당 가능Block-level scope
재선언 불가능
재할당 불가능Function-level scope와 Block-level scope
Function-level scope
함수 내에서 선언된 변수는 함수 내에서만 유효하며 함수 외부에서는 참조할 수 없다.
Block-level scope
모든 코드 블록 내에서 선언된 변수는 코드 블록 내에서만 유효하며 코드 블록 외부에서는 참조할 수 없다.
재선언
let과 const를 사용시, 변수를 재선언을 한다면 에러가 뜬다.
Uncaught SyntaxError: Identifier '변수명' has already been declared
재할당
let은 재할당이 가능하지만 const는 재할당이 안된다.
const 사용시 선언과 동시에 할당이 이루어져야 한다.
변수의 생성과정
변수는 선언 > 초기화 > 할당의 단계를 건친다.
var
선언과 초기화 단계가 한 번에 이루어진다.
undefined로 초기화
=> 변수 선언문 이전에 변수를 참조할 수 있다.
let
선언과 초기화 단계가 분리되어 진행된다.
스코프에 변수를 등록(선언)하지만 초기화는 변수 선언문에 도달했을 때 이루어진다.
=> 초기화 이전에 접근하려하면 ReferenceError 발생
(스코프의 시작 지점~초기화 시작 지점 구간을 ‘일시적 사각지대(Temporal Dead Zone, TDZ)’라고 부른다)
let, const | PoiemaWeb
ES5까지 변수를 선언할 수 있는 유일한 방법은 var 키워드를 사용하는 것이었다. var 키워드로 선언된 변수는 아래와 같은 특징이 있다. 이는 다른 언어와는 다른 특징으로 주의를 기울이지 않으면
poiemaweb.com
반응형'JavaScript' 카테고리의 다른 글
[JavaScript] FileReader 객체 (0) 2022.09.11 [JavaScript] use strict (0) 2022.08.30 [JavaScript] 키보드 이벤트: 특정키 확인 (key, code, keyCode) (0) 2022.07.18 [JavaScript] Throttle 와 Debounce (0) 2022.06.23 [JavaScript] 브라우저 창 사이즈 (0) 2022.06.16