[자바스크립트] let, const 키워드와 블록 레벨 스코프

Kate·2023년 4월 2일
0

자바스크립트

목록 보기
9/19

1. var

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

  • 변수 중복 선언 허용
  • 함수 레벨 스코프 : var 키워드로 선언한 변수는 오로지 함수의 코드 블록만을 지역 스코프로 인정, 함수 외부에서 var 키워드로 선언한 변수는 코드 블록 내에서 선언해도 모두 전역 변수가 된다.
  • 변수 호이스팅 : 변수 호이스팅에 의해 변수 선언문이 스코프의 선두로 끌어 올려진 것처럼 동작

2. let

변수 중복 선언 금지

  • let 키워드로 이름이 같은 변수를 주복 선언하면 문법 에러 발생

블록 레벨 스코프

  • 모든 코드 블록(함수, if문, for문, while문, try/catch문 등)을 지역 스코프로 인정하는 블록 레벨 스코프를 따름
  • 변수 호이스팅 : 변수 호이스팅이 발생하지 안흔 것처럼 동작, let 키워드로 선언한 변수를 변수 선언문 이전에 참조하면 참조 에러가 발생
    - 선언 단계초기화 단계가 분리되어 진행
    - 일시적 사각지대 : 스코프의 시작 지점부터 초기화 시작 지점까지 변수를 참조할 수 없는 구간

3. const

const : 상수를 선언하기 위해 사용

  • 선언과 초기화 : 반드시 선언과 동시에 초기화 해야 함
  • 재할당 금지 : const 키워드로 선언한 변수는 재할당이 금지
  • 상수 : 재할당이 금지된 변수
  • const 키워드와 객체 : const 키워드로 선언된 변수에 객체를 할당할 경우 값을 변경할 수 있음

4. var vs let vs const

  • 변수 선언에는 기본적으로 const 사용, let은 재할당이 필요한 경우에 한정 사용
  • ES6 사용 시 var은 사용 x
  • 재할당 필요 시 let 사용, 스코프는 최대한 좁게 만듦
  • 변경이 발생하지 않고 읽기 전용 원시값과 객체에는 const 사용
profile
개발 공부하는 케이트입니다.

0개의 댓글