js 컴파일 및 실행 순서에 대한 자세한 설명

小云云
풀어 주다: 2018-02-24 14:27:01
원래의
1464명이 탐색했습니다.

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(&#39;first&#39;);</script><script type="text/javascript">
    alert(&#39;second&#39;);</script>
로그인 후 복사
두번째 팝업. 자바스크립트는 섹션별로 실행되기 때문에 c()에 첫 번째 섹션을 실행하면 에러가 보고되고, 첫 번째 섹션 전체가 다시 실행되지 않고 두 번째 섹션은 정상적으로 실행된다.

관련 추천:


JavaScript 실행 순서 분석

JavaScript 실행 순서에 대한 간략한 소개

HTML에서 js 로딩 실행 순서에 대한 자세한 설명

위 내용은 js 컴파일 및 실행 순서에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿