● 참조 우선순위
let, const 키워드는 같은 식별자의 중복 선언이 불가능합니다. 하지만 정확하게는 같은 스코프 영역에서 중복 선언이 불가능하다고 할 수 있습니다.
다음 코드를 보면 let, const 키워드로 변수 a, b를 함수 외부에 선언하고, 함수 내부에도 똑같이 변수 a, b를 선언했는데 중복 선언 오류가 발생하지 않습니다.
10/04/reference.js
let a = 10;
const b = 20;
function sum(){
let a = 50;
const b = 70;
console.log(`함수 내부 a: ${a}`);
console.log(`함수 내부 b: ${b}`);
}
sum();
실행결과
함수 내부 a: 50
함수 내부 b: 70
전역 스코프와 지역 스코프에 같은 식별자를 가지는 참조 대상이 있다면, 먼저 같은 지역 스코프의 식별자를 참조합니다. 그리고 같은 지역 스코프에서 참조할 식별자를 찾지 못할 때만 전역 스코프에서 찾습니다.