javascript - js의 실행 순서는 무엇입니까?
phpcn_u1582
phpcn_u1582 2017-06-26 10:58:23
0
3
691

1. js의 실행 순서를 이해할 수 없습니다. 다음 코드를 실행합니다. 경고가 처음 시작되면 오류가 직접 보고되어야 하지 않나요? 이 함수가 먼저 표시되고 10, 3이 표시되고 마지막으로 오류가 보고되는 이유는 무엇입니까? 처음부터 오류를 보고하면 안되는 걸까요?

으아악

phpcn_u1582
phpcn_u1582

모든 응답(3)
ringa_lee

반 친구들에게 물어보니 먼저 개념을 이해해야 합니다.
1.js에서는 변수 선언과 함수 선언이 미리 만들어지는데, 변수 선언보다 함수 선언이 더 좋습니다. 따라서 선언하기 전에 경고(a)는 오류를 보고하지 않습니다. 또한 첫 번째 경고에는 변수 a가 아닌 함수 a가 나타납니다.
2. 두 번째 경고는 말할 필요도 없이 a 함수를 실행합니다.
3. 세 번째 경고는 여기에서 실행되기 전에 var a=3;가 실행되었기 때문에 결과는 3입니다. 따라서 a는 3이 됩니다. var a=3;。所以a变成了3。
4.最后报错是因为,执行到a();a进行了两次赋值,第一次是var a=3;,第二次是a=6;4. a(); a가 두 번 할당되었기 때문에 마지막 오류가 보고되었습니다. 첫 번째는 var a=3;이고 두 번째는 a=6; 그러나 어쨌든 a는 함수가 아니므로 오류가 보고됩니다.

伊谢尔伦

첫 번째 출력function 是因为作用域提升(hoisting)。
第二个输出 10 是第二行 a() 的输出。
第三个输出 3 是倒数第三行 alert(a) 的输出。
最后一个报错是来自最后一行 a()。因为这时候 a 被重新赋值为数字 6,已经不是 function 了。执行 a()에서는 물론 오류가 보고됩니다.

某草草

변수 선언이 승격되나요? 다음 규칙만 기억하세요.

http://zonxin.github.io/post/...

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