javascript - 함수 선언 섹션에 함수가 있는데 잘 이해가 되지 않습니다.
我想大声告诉你
我想大声告诉你 2017-07-05 10:38:34
0
4
718

이것은 위의 js 고도의 예입니다.
함수 선언에 코드가 있는지 확인하세요

으아아아

이 코드에는 잘못된 구문이 있다고 합니다. 대부분의 브라우저는 두 번째 문을 반환하고 Firefox는 첫 번째 문을 반환합니다. 이유는 무엇입니까?
함수 표현 형태로 바꿀 수 있다면 왜 그럴까요?

으아아아
我想大声告诉你
我想大声告诉你

모든 응답 (4)
黄舟

첫 번째는 함수 선언인데 일반적으로 if-else에서는 함수를 선언하지 않기 때문이죠

두 번째는 변수에 익명 함수를 할당하는 것입니다. 프로모션 같은 건 없습니다.

    黄舟

    함수 xxx(){}를 직접 작성하면 동일한 이름의 함수가 두 개 있으면 상단에서 var xxx를 두 번 실행하는 것과 같으므로 유효하지 않습니다

      伊谢尔伦

      그 당시 JavaScript 사양은 여전히 ES5였고, 브라우저는 아직 블록 수준 범위(ES2016+)를 구현하지 않았으며 범위 수준은 함수 수준에만 있었습니다. 그래서 썼구나

      으아악

      작성자:

      으아악

      본질적인 차이는 없습니다

        洪涛

        js는 미리 선언되어 있습니다! ! ! 함수는 선언될 때 범위 상단에 직접 언급됩니다. if에는 범위가 없으므로 두 함수는 하나의 범위이며 두 번째 함수가 첫 번째 함수를 대체합니다. ! 두 번째 코드의 경우 먼저 변수 sayhi를 선언한 다음 if 판단 후에 sayhi에 값을 할당합니다.

          최신 다운로드
          더>
          웹 효과
          웹사이트 소스 코드
          웹사이트 자료
          프론트엔드 템플릿
          회사 소개 부인 성명 Sitemap
          PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!