ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • let, const 키워드와 블록 레벨 스코프
    개발/프론트엔드 2023. 5. 24. 23:24

    var 키워드의 문제점

    • 같은 스코프 내, 변수의 중복 선언 허용
    • 함수 레벨 스코프
    • 변수 호이스팅

    let 키워드의 특징

    • 변수 중복 선언 금지. 중복 선언 시 문법 에러
    • 블록 레벨 스코프 : 모든 코드 블록(if, for, while, try/catch 등을 포함)을 지역 스코프로 인정.
    • 선언 단계는 런타임 이전에, 초기화 단계(undefined 할당)은 런타임 도중 선언 문장을 만났을 때 진행. 따라서 선언문 전에 참조하면 referenceError가 발생하고, 호이스팅이 발생하지 않는 것처럼(하지만 실제로 호이스팅은 발생한다.) 동작하게 된다. 선언 단계와 초기화 단계 사이 참조할 수 없는 구간을 Temporal Dead Zone 이라 부름.
    • 전역 객체( window, …)의 프로퍼티가 아니다.

    const 키워드의 특징

    • let 키워드의 특징 모두를 똑같이 가짐.
    • 선언과 동시에 초기화해야 함.
    • 재할당이 금지됨
    • 보통 전체 대문자 + 스네이크 케이스로 표현
    • 당연하게도 객체가 할당되어 있을 경우 해당 객체 프로퍼티의 변경은 가능. 참조하는 주소값이 바뀌는게 아니므로.

    var, let, const 사용상의 조언

    • ES6 사용한다면 var 키워드는 사용하지 않기.
    • 변수 선언에는 기본적으로 const를 사용하기.
    • 나중에 봤을 때 반드시 재할당이 필요한 경우라면 let 키워드로 변경하기.

    '개발 > 프론트엔드' 카테고리의 다른 글

    Virtual DOM  (0) 2023.07.03
    전역 변수의 문제점  (0) 2023.05.24
    스코프  (0) 2023.05.23
    함수  (0) 2023.05.23
    원시 값과 객체의 비교  (0) 2023.05.23
Designed by Tistory.