久久久久在线观看_又色又爽又黄的免费视频播放_一区中文字幕_日韩电影在线播放

今日焦點 焦點資訊 營銷之道 企業報道 淘寶運營 網站建設 軟件開發 400電話
  當前位置: 首頁 » 資訊 » 軟件開發 » 正文

js編譯和執行順序詳解

放大字體  縮小字體 發布日期:2018-02-24  來源:企業800網  作者:新格網  瀏覽次數:779  【去百度看看】
核心提示:Javascript是一段一段執行的,以script標簽來分割,執行每一段之前,都有一個“預編譯”, 預編譯干的活有兩:1.聲明所有var變量(初始為undefined),2.解析定義式函數語句。 有個關于 “window作用域下,a = 1和var a = 1” 的區別的很經典:

Javascript是一段一段執行的,以script標簽來分割,執行每一段之前,都有一個“預編譯”, 預編譯干的活有兩:1.聲明所有var變量(初始為undefined),2.解析定義式函數語句。

有個關于 “window作用域下,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 is not defined
2.

alert(w);
alert('ok');var w = 2;

依次彈出undefined和ok。預編譯的時候,聲明了變量w;執行到alert(w)這行代碼的時候,t尚未被賦值,所以彈出undefined。
3.

a();function a() {}alert('ok');

彈出ok。預編譯的時候,解析了定義式函數語句function a() {},順利執行。
4.

b();var b = function() {};
alert('ok');

b不是函數,執行報錯。預編譯的時候,聲明了變量b = undefined;執行到b()時,a還等于undefined,不是函數,所以執行b()會報錯。
5.

<script type="text/javascript">
    c();
    alert('first');</script><script type="text/javascript">
    alert('second');</script>

彈出second。因為javascript是一段一段執行的,第一段執行到c()的時候報錯,整個第一段都不會再執行,第二段正常執行。

相關推薦:

Javascript執行順序分析

Javascript執行順序的簡單介紹

詳解js在html中的加載執行順序

以上就是js編譯和執行順序詳解的詳細內容,更多請關注php中文網其它相關文章!

 
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 違規舉報 ]  [ 關閉窗口 ]

 
0條 [查看全部]  相關評論

 
網站首頁 | 關于我們 | 聯系方式 | 使用協議 | 版權隱私 | 網站地圖 | 排名推廣 | 廣告服務 | 積分換禮 | 網站留言 | RSS訂閱 | 皖ICP備2021004516號-14
企業800網 · 提供技術支持