Javascript는 스크립트 태그로 구분되어 섹션별로 실행됩니다. 사전 컴파일은 두 가지 작업을 수행합니다. 1. 모든 var 변수 선언(초기 정의되지 않음), 2. 구문 분석 기능 성명.
"창 범위에서 a = 1과 var a = 1"의 차이점에 대한 고전적인 기사가 있습니다.
a = 1相当于window.a = 1,是动态地为window添加一个成员; var a = 1是在当前作用域(也就是window)下声明一个a,这个声明是在整个作用域内都有效的。 换句话说,其实区别就在于var a = 1比a = 1多了一个声明的行为。
다음 예를 보세요:
1.
alert(w); alert('ok'); w = 2;
오류: w가 정의되지 않았습니다
2.
alert(w); alert('ok');var w = 2;가 정의되지 않은 상태로 나타나고 차례로 ok가 나타납니다. 미리 컴파일하는 동안 변수 w가 선언됩니다. 경고(w) 코드 줄이 실행될 때 t에는 아직 값이 할당되지 않았으므로 정의되지 않은 팝업이 나타납니다.
3.
a();function a() {}alert('ok');팝업 OK. 사전 컴파일 중에 정의 함수 설명 function a() {}가 원활하게 구문 분석되고 실행됩니다.
4.
b();var b = function() {}; alert('ok');b는 함수가 아니며, 실행 시 오류가 발생합니다. 사전 컴파일 중에 변수 b = undefed가 선언되었습니다. b()가 실행될 때 a는 여전히 undefine과 동일하고 함수가 아니므로 b()가 실행될 때 오류가 보고됩니다.
5.
<script type="text/javascript"> c(); alert('first');</script><script type="text/javascript"> alert('second');</script>두번째 팝업. 자바스크립트는 섹션별로 실행되기 때문에 c()에 첫 번째 섹션을 실행하면 에러가 보고되고, 첫 번째 섹션 전체가 다시 실행되지 않고 두 번째 섹션은 정상적으로 실행된다. 관련 추천:
위 내용은 js 컴파일 및 실행 순서에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!