javascript - JS의 함수 승격에 관해 질문하고 싶습니다.
代言
代言 2017-06-12 09:30:06
0
3
629

다음 코드:

으아악

실행 후에는 출력이 정의되지 않습니다.

if 조건을 제거한 후 두 번째 함수가 출력됩니다

으아악

함수가 개선되었다는 사실을 알고 두 번째 코드에서는 두 번째 함수가 console.log(a) 코드 이전으로 승격되므로 두 번째 함수가 실행되어 출력됩니다.
하지만 첫 번째 코드에서는 왜 정의되지 않음이 출력되는지 이해가 되지 않습니다.

代言
代言

모든 응답(3)
代言

조건부 함수 선언은 함수 표현식과 동일한 방식으로 처리됩니다. 따라서 조건부 함수 선언은 함수 선언의 호이스팅 속성을 잃습니다.

참조 URL: /q/10...

刘奇

if else 문에서 function 키워드를 사용하여 함수를 선언할 때 변수 승격은 브라우저마다 다릅니다. 단지 변수 선언이 여기서 승격되고 else가 제거되면 순수 함수 범위가 됩니다.

으아악
学习ing

IIFE에서

으아악

는 함수 선언이 아닌 함수 선언입니다. if를 제거하면 함수 선언입니다. conosle.log(a)는 정의되지 않은 변수 a를 나타냅니다. https://developer를 참조하세요. mozilla.org..

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿