[JavaScript] var, let, const 중복 선언 허용, 스코프, 호이스팅💜 프론트엔드/JavaScript2024. 3. 31. 20:14
Table of Contents
Q. 질문
var, let, const 를 중복 선언 허용, 스코프, 호이스팅 관점에서 서로 비교해 주세요.
(코드잇 스프린트 위클리 페이퍼 #4)
A. 중복 선언 허용
var - 중복 선언 O
var 은 정상적으로 중복 선언이 가능하다.
let - 중복 선언 X
let 은 중복 선언이 불가능하여 SyntaxError
가 발생한다.
const - 중복 선언 X
const 도 let 과 마찬가지로 중복 선언이 불가능하여 SyntaxError
가 발생한다.
추가적으로 const 는 let 과 다르게 재할당 시 TypeError
가 발생한다.
A. 스코프
- 함수 스코프
- 함수 안에서 정의된 변수는 해당 함수 내에서만 접근 가능
- 블록 스코프
- 중괄호 {} 로 둘러싸인 블록 내에서만 접근 가능
var - 함수 스코프
var 은 함수 스코프로 함수 내부 어디든 접근 가능하다.
하지만 함수 외부에서는 접근할 수 없어 ReferenceError
가 발생한다.
let, const - 블록 스코프
let 과 const 는 블록 스코프로 블록 내부에서 선언한 변수는 블록 내부에만 유효하다.
그래서 블록 외부에서 사용하면 ReferenceError
가 발생한다.
A. 호이스팅
호이스팅
변수 및 함수 선언이 스코프 내의 최상단으로 옮겨지는 것
var
var 로 선언된 변수는 호이스팅 되어, 해당 변수를 선언하기 이전에 접근을 하면 undefined 가 출력이 된다.
실제 코드는 왼쪽이지만, 실제로 오른쪽처럼 해석하여 작동하는 걸로 이해할 수 있다.
let, const
반면 let 과 const 는 선언되기 전에 접근을 하면 ReferenceError
가 발생한다.
'💜 프론트엔드 > JavaScript' 카테고리의 다른 글
[JavaScript] 이벤트 버블링, 캡쳐링, 위임 & HTTP 메소드 (0) | 2024.04.07 |
---|---|
[JavaScript] 자바스크립트 얕은 복사 VS 깊은 복사 (0) | 2024.03.29 |
[자바스크립트/JavaScript] 고차 함수 filter 사용 방법 #2 (0) | 2023.11.03 |
[자바스크립트/JavaScript] 고차 함수 map 사용 방법 #1 (0) | 2023.11.02 |
@짱잼 :: 짱잼이의 FE 개발 공부 저장소
FE 개발자가 되고 싶은 짱잼이
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!