var a;
if (true) {
a = 5;
function a() {}
a = 0;
console.log(a)
}
console.log(a)
위 코드를 보았고 {}에 함수가 선언되었습니다. 0 0을 인쇄한다고 생각하지만 0 5를 인쇄합니다.
이것이 귀하의 질문에 대답합니까? ES6에서 블록 레벨 함수의 정확한 의미는 무엇입니까?
—
Jonas Wilms
엄격 모드에서는을 기록
—
특정 성능
0 undefined합니다.
@certainPerformance는 잘 설명 할 수 있지만
—
Jonas Wilms
a = 5블록 을 벗어나는 것은 설명하지 못합니다 . 듀 피의 베르기에 따르면, function a게양 될 것입니다.
함수 선언에 도달하면 로컬 범위의 블록 변수가 외부 블록에 복사되는 것처럼 보입니다.
—
Jonas Wilms 7