關于js中的預解釋

預解釋:在當前的作用域中,js代碼執(zhí)行之前,瀏覽器首先會默認把所有的帶var、function的進行提前的聲明和定義。

1.對于帶var和function關鍵字在預解釋的時候是不一樣
(1)var 在預解釋的時候只是提前的聲明
(2)function 在預解釋的時候是提前聲明和定義都完成了
預解釋只發(fā)生在當前的作用域下,例如只對window下進行的預解釋,只有函數(shù)執(zhí)行的時候才會對函數(shù)進行預解釋。

2.預解釋的時候不管條件是否成立,都要把帶var的進行提前的聲明

// window的預解釋:var num; window.num
if ( !('num' in window)) {   // 'num' in window  ->true
    var num = 12
}
console.log(num) // undefined

3.預解釋的時候只解釋 ‘=’左邊的,右邊的是值,不參與預解釋

匿名函數(shù)之函數(shù)表達式:把函數(shù)定義的部分當做一個值賦值給我們的變量/元素的某一個事件

    fn()// 這時候執(zhí)行fn()的時候回報錯,因為預解釋的時候var fn; 相當于是undefined()  所以fn這時候不是一個函數(shù)會報錯
    var fn = function () {
        console.log(12)
    }

4.自執(zhí)行函數(shù)定義的那個function 在全局作用域下是不進行預解釋的,當代碼執(zhí)行到這個位置的時候定義和執(zhí)行一起完成了
自執(zhí)行函數(shù):定義和執(zhí)行一起完成

    (function (num) {})(100)
    +function (num){}(200)
    !function (num){}(300)

5.函數(shù)體中return 下面的代碼雖然不執(zhí)行了,但是還會進行預解釋;return后面跟著的都是返回的值,所以不進行預解釋

    function fn (){
        console.log(num)  //undefined  預解釋:var num;
        return function () {} 
        var num = 12
    }
    fn ()

6.在預解釋的時候,如果名字已經(jīng)聲明過了不需要重新聲明,但是需要重新賦值在js中如果變量的名字和函數(shù)的名字重復了,也算沖突.

    fn()  // 20 
    function fn () { console.log(12) }
    fn() //20
    var fn = 10;  //  fn = 10
    fn()  // 報錯 fn is not function
    function fn () { console.log(20) }
    fn()
/***
    window預解釋
    聲明+定義 fn = xfff1111  //是執(zhí)行12的那個函數(shù);
    聲明 var fn;
     聲明(因為已經(jīng)有函數(shù)fn了,這時候就不重復聲明了,只有賦值)+定義 fn = xfff222  // 是執(zhí)行20的那個函數(shù)
    fn = xffff222
***/
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,130評論 2 17
  • 繼承 一、混入式繼承 二、原型繼承 利用原型中的成員可以被和其相關的對象共享這一特性,可以實現(xiàn)繼承,這種實現(xiàn)繼承的...
    magic_pill閱讀 1,128評論 0 3
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,246評論 0 38
  • 綠葉減肥 1.為什么綠汁可以促進減肥效果 1)綠汁是由甘藍、大麥嫩葉、明天葉(明天)等綠色蔬菜為主的果汁。因為它能...
    瘦小君教練閱讀 568評論 0 0
  • 聽樊登老師講解幸福的方法受益匪淺,幸福,每個人都想幸福,都努力追求幸福,然而我們大多數(shù)人感覺自己不幸?!?幸福是...
    54f70f613c7c閱讀 189評論 1 1

友情鏈接更多精彩內容