Language | Basic/JavaScript

[JavaScript 스터디] let, const

주정용 2021. 1. 24. 22:43
728x90

var 변수의 문제점

  • 변수 중복 선언 가능
  • 함수 레벨 스코프
  • 변수 호이스팅

let

  • 변수 중복 선언 불가능
  • 블록 레벨 스코프
  • 변수 호이스팅
    • let 변수는 선언 단계와 초기화 단계가 분리되어 일어남
    • 스코프 시작 지점 ~ 초기화 시작 지점까지 일시적 사각지대 존재 --> 이때에는 변수를 참조할 수 없음
    • 모든 선언은 호이스팅 되지만, ES6의 let, const, class는 호이스팅이 안되는 것처럼 작동함
  • let 변수는 전역 객체에 없음 --> 실행 컨텍스트에 존재

const

  • const 변수는 반드시 선언과 초기화를 같이 해야함
  • 재할당 불가능
  • 상수 == 재할당이 금지된 변수
  • 재할당이 불가능하기에 원시값이 있는 변수는 값을 교체할 수 없음
  • 객체 변수는 객체 내부를 변경할 수 있음 --> 재할당과 불변은 다름

결론

  • ES6 이상이라면 var는 사용하지 않기
  • 변수를 선언할 때에는 일단 const로 사용하기

학습 도서

  • '모던 자바스크립트 Deep Dive', 이웅모 저, 위키북스

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&linkClass=3314&barcode=9791158392239