var va let va const
var
함수 스코프
함수 스코프의 최상단으로 호이스팅
선언 후 할당없이 호출하면 undefined (선언과 동시에 undefined로 초기화되기 때문)
strict mode가 아닐때, 글로벌 스코프에서 선언 시 글로벌 객체에 바인딩
재선언 가능
재할당 가능
let
블록 스코프
블록 스코프의 최상단으로 호이스팅
선언 후 할당없이 호출하면 ReferenceError (이것을 TDZ(Temporal Dead Zone)이라함, 선언은 했지만 참고할 수 없는 사각지대)
strict mode가 아닐때, 글로벌 스코프에서 선언해도 글로벌 객체에 바인딩되지 않음
재선언 불가능
재할당 가능
const
블록 스코프
블록 스코프의 최상단으로 호이스팅
선언 후 할당없이 호출하면 ReferenceError (이것을 TDZ(Temporal Dead Zone)이라함, 선언은 했지만 참고할 수 없는 사각지대)
strict mode가 아닐때, 글로벌 스코프에서 선언해도 글로벌 객체에 바인딩되지 않음
재선언 불가능
재할당 불가능
선언과 초기화가 반드시 동시에 일어나야함
상수와 같은 고정값을 선언할 때 사용
이전에 읽은 아티클
[아티클 프로젝트 004] let, const와 블록 레벨 스코프
[아티클 프로젝트 057] 취준생이 반드시 알아야 할 프론트엔드 지식들 (var vs let vs const)
github.com/baeharam/Must-Know-About-Frontend/blob/master/Notes/javascript/var-let-const.md
'~2022 > 아티클' 카테고리의 다른 글
클린코드 - 01. 깨끗한 코드 (0) | 2021.11.14 |
---|---|
[아티클 프로젝트 060] 콜 스택(Call stack)과 힙(Heap) (0) | 2020.11.05 |
[아티클 프로젝트 059] 모듈 시스템: CommonJS, AMD, UMD, ES6 (0) | 2020.11.04 |
[아티클 프로젝트 058] 즉시 실행 함수 (IIFE, Immediately-Invoked Function Expression) (0) | 2020.11.03 |
[아티클 프로젝트 055] this (0) | 2020.10.28 |
[아티클 프로젝트 051] User-Agent Client Hints의 도입, UA 프리징을 대비하라 (0) | 2020.10.14 |
[아티클 프로젝트 049] Chrome is deploying HTTP/3 and IETF QUIC (0) | 2020.10.08 |
[아티클 프로젝트 047] 취준생이 반드시 알아야 할 프론트엔드 지식들 -CSS (0) | 2020.10.06 |