모던 자바스크립트 Deep Dive 15장 정리 - let, const 키워드와 블록 레벨 스코프

Hyodduru ·2022년 5월 25일
0
post-thumbnail

15장 let, const 키워드와 블록 레벨 스코프

15.1 var 키워드로 선언한 변수의 문제점

🧐 var keyword 문제점?

👉 변수 중복 선언 허용
👉 함수 레벨 스코프 (전역 함수 남발 가능성)
👉 변수 호이스팅 (프로그램 흐름상 맞지 않을 뿐더러 가독성을 떨어뜨리고 오류 발생가능성)

15.2 let 키워드

🧐 let 키워드 특징?

👉 변수 중복 선언 금지(const와 동일)
👉 블록 레벨 스코프 (const와 동일)
👉 변수 호이스팅이 발생하지 않는 것처럼 동작. why? "선언 단계" 와 "초기화 단계"가 분리되어 진행되기 때문.
👉 let 키워드로 선언한 전역 변수는 전역 객체의 프로퍼티가 아님

🧐 TDZ란?

Temporal Dead Zone이란 일시적 사각지대로 스코프의 시작 지점부터 초기화 시작 지점까지 변수를 참조할 수 없는 구간

15.3 const 키워드

🧐 let과 구별되는 const만의 특징?

👉 선언과 초기화 : const 키워드로 선언한 변수는 반드시 선언과 동시에 초기화해야 한다.
👉 재할당 금지.
👉 const 키워드로 선언한 변수에 원시 값을 할당한 경우 변수 값을 변경할 수 없기 때문에 상수를 표현하는데 사용하기도 한다.
👉 const 키워드로 선언된 변수에 객체를 할당한 경우 값을 변경할 수 있다. 객체는 재할당 없이도 직접 값을 변경할 수 있기 때문!

const 키워드는 재할당을 금지할 뿐 "불변"을 의미하지는 않는다.

15.4 var vs let vs const

🧐 어떤 변수를 쓰는게 좋을까?

👉 ES6 사용한다면 var 키워드 쓰지 말 것
👉 재할당이 필요한 경우에 한정해 let 키워드 사용. 변수의 스코프는 최대한 좁게.
👉 변경이발생하지 않고 읽기 전용으로 사용하는 원시 값과 객체에는 const 키워드 사용하기. const 키워드는 재할당을 금지하므로 var, let보다 안전.

profile
꾸준히 성장하기🦋 https://hyodduru.tistory.com/ 로 블로그 옮겼습니다

0개의 댓글