코드 블록 내 const, let 재선언 (+ var)

TASON·2021년 6월 22일
1

자바스크립트

목록 보기
4/11

전역 스코프에서 어떤 변수든 let이나 const로 한번만 선언될 수 있다.
즉, let 또는 const 선언 후 전역 스코프에서 다시 선언하는 것이 불가능하다는 것이다.
하지만, 이전에 선언했더라도 코드 블록 내에서는 다시 선언하는 것이 가능하다.


예시

if (조건) {
  코드;
}

조건이 만족됐을 때 실행되는 코드가 {}로 감싸져 있다.
이를 코드 블록이라고 한다.

const a = 1; // 초기 선언
if (true) {
  let a = 2; // 블록 내 선언
  console.log(a); // 2 출력됨
}
console.log(a); // 1 출력됨

전역 스코프에서 const a를 선언했다.
그리고 코드 블록 내에서 다시 let a를 선언했다.
이렇듯, 코드 블록 내에서는 재선언도 가능하고 상수 const 선언 후 변수 let 선언(또는 변수 선언 후 상수 선언) 또한 가능하다.


var의 재선언

var a = 1; // 초기 선언
if (true) {
  var a = 2; // 블록 내 선언
  console.log(a); // 2 출력됨
}
console.log(a); // 2 출력됨

var의 경우는 원래 재선언이 가능하다.
하지만 constlet과 달리, 전역 스코프에서 출력 시 가장 최근의 var 선언된 변수를 출력하게 된다.

profile
프론트엔드 개발자 / iOS 개발 스터디 중

0개의 댓글