最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入理解JavaScript 中的匿名函數(shù)((function() {})();)與變量的作用域

 更新時間:2018年08月28日 08:56:40   作者:河圖書卦  
匿名函數(shù)沒有實際名字的函數(shù),匿名函數(shù)(function() {})();是一個特殊的閉包寫法。本文蛀牙給大家介紹JavaScript 中的匿名函數(shù)((function() {})();)與變量的作用域,需要的朋友可以參考下

匿名函數(shù):沒有實際名字的函數(shù)。

匿名函數(shù)的作用:

1、通過匿名函數(shù)可以實現(xiàn)閉包,關于閉包在后面的文章中會重點講解。在這里簡單介紹一下:閉包是可以訪問在函數(shù)作用域內(nèi)定義的變量的函數(shù)。若要創(chuàng)建一個閉包,往往都需要用到匿名函數(shù)。
2、模擬塊級作用域,減少全局變量。執(zhí)行完匿名函數(shù),存儲在內(nèi)存中相對應的變量會被銷毀,從而節(jié)省內(nèi)存。再者,在大型多人開發(fā)的項目中,使用塊級作用域,會大大降低命名沖突的問題,從而避免產(chǎn)生災難性的后果。自此開發(fā)者再也不必擔心搞亂全局作用域了。

本章節(jié)重點給大家介紹JavaScript 中的匿名函數(shù)((function() {})();)與變量的作用域,具體內(nèi)容如下所示:

以前都是直接用前端框架Bootstrap,突然想看看Javascript,發(fā)現(xiàn)javascript是個非常有趣的東西,這里把剛碰到的一個小問題的理解做下筆錄(廢話不多說,上代碼)。

/**
 * Example 1
 */
var localvar = "local var";
console.log(localvar);//local var
/**
 * Example 2
 */
console.log(x === undefined); // true
var x = 3;
/**
 * Example 3
 */
var myvar = "my value";
//Test01
//will return a value of undefined
(function() {
 console.log(myvar); // undefined
 var myvar = "local value";
 console.log(myvar); // local value
})();
console.log(myvar);//my value
//Test02
(function myFunction(){
 console.log(myvar);//my value
})();
//Test03
var test = new function(){
 console.log(myvar);//my value
};

解釋如下:

(1).JavaScript 變量的特別之處是,你可以引用稍后聲明的變量而不會引發(fā)異常。這一概念稱為變量聲明提升(hoisting);

(2).JavaScript 變量感覺上是被“提升”或移到了函數(shù)或語句的頂部。然而提升后的變量將返回 undefined 值。

(3).在使用或引用某個變量之后進行聲明和初始化操作,這個被提升的引用仍將得到 undefined 值。

(4).這里Example 3中Test01是這次問題的關鍵,Test01和Test02是很相似的(至少我看著很相似)。但是最后輸出結果不能用(1)、(2)、(3)來解釋

  經(jīng)過查看官方API文檔發(fā)現(xiàn),在匿名函數(shù)(function() {})();的使用中形成了閉包(重點,不清楚的可以查閱閉包的概念,閉包概念還是好理解的);

  由于閉包的存在,全局變量自然無法訪問(閉包的一個重要原因就是為了避免訪問全局變量),故Test01 function中第一句輸出結果為undefined。

總結原因:匿名函數(shù)(function() {})();是一個特殊的閉包寫法。

總結

以上所述是小編給大家介紹的JavaScript 中的匿名函數(shù)((function() {})();)與變量的作用域,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • 使用JavaScript實現(xiàn)圖片的自動輪播

    使用JavaScript實現(xiàn)圖片的自動輪播

    在網(wǎng)站開發(fā)中,經(jīng)常會遇到需要展示多張圖片并自動切換的需求,這就需要使用JavaScript來實現(xiàn)圖片的自動輪播功能,本文將通過一個簡單的例子,演示如何用JavaScript實現(xiàn)圖片的自動輪播,需要的朋友可以參考下
    2013-03-03
  • JavaScript之DOM_動力節(jié)點Java學院整理

    JavaScript之DOM_動力節(jié)點Java學院整理

    由于HTML文檔被瀏覽器解析后就是一棵DOM樹,要改變HTML的結構,就需要通過JavaScript來操作DOM。始終記住DOM是一個樹形結構。
    2017-07-07
  • 淺談JavaScript正則表達式-非捕獲性分組

    淺談JavaScript正則表達式-非捕獲性分組

    下面小編就為大家?guī)硪黄狫avaScript正則表達式-非捕獲性分組。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 詳解JavaScript中扁平與樹形數(shù)據(jù)的轉換

    詳解JavaScript中扁平與樹形數(shù)據(jù)的轉換

    這篇文章主要為大家想介紹了JavaScript中實現(xiàn)扁平與樹形數(shù)據(jù)相互轉換的方法,文中的示例代碼講解詳細,對我們學習JavaScript有一定的幫助,需要的可以參考一下
    2023-01-01
  • javascript firefox 自動加載iframe 自動調(diào)整高寬示例

    javascript firefox 自動加載iframe 自動調(diào)整高寬示例

    iframe 自動獲取onload高寬以及iframe 自動加載,具體實現(xiàn)如下,感興趣的朋友可以參考下
    2013-08-08
  • AI小程序之語音聽寫來了,十分鐘掌握百度大腦語音聽寫全攻略

    AI小程序之語音聽寫來了,十分鐘掌握百度大腦語音聽寫全攻略

    語音識別極速版能將60秒以內(nèi)的完整音頻文件識別為文字,本文主要介紹采用百度語音識別,實現(xiàn)小程序的聽寫功能,感興趣的同學可以來了解一下
    2020-03-03
  • JavaScript實現(xiàn)監(jiān)控上傳和下載進度

    JavaScript實現(xiàn)監(jiān)控上傳和下載進度

    這篇文章主要介紹了JavaScript實現(xiàn)監(jiān)控上傳和下載進度,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值需要的小伙伴可以參考一下
    2022-05-05
  • 原生JS實現(xiàn)首頁進度加載動畫

    原生JS實現(xiàn)首頁進度加載動畫

    這篇文章主要為大家詳細介紹了原生JS實現(xiàn)首頁進度加載動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • js實現(xiàn)touch移動觸屏滑動事件

    js實現(xiàn)touch移動觸屏滑動事件

    在開始描述touch事件之前,需要先描述一下多觸式系統(tǒng)中特有的touch對象(android和iOS乃至nokia最新的meego系統(tǒng)都模擬了類 似的對象)。這個對象封裝一次屏幕觸摸,一般來自于手指。它在touch事件觸發(fā)的時候產(chǎn)生,可以 通過touch event handler的event對象取到
    2015-04-04
  • BootStrap智能表單實戰(zhàn)系列(七)驗證的支持

    BootStrap智能表單實戰(zhàn)系列(七)驗證的支持

    這篇文章主要介紹了BootStrap智能表單實戰(zhàn)系列(七)驗證的支持 ,凡是涉及到用戶編輯信息然后保存的頁面,都涉及到一個數(shù)據(jù)是否符合要求的檢查,需要客服端和服務器端的校驗的問題,本文介紹非常詳細,具有參考價值,需要的朋友可以參考下
    2016-06-06

最新評論

铁岭县| 渭源县| 始兴县| 永平县| 吉安县| 屏山县| 临桂县| 拉萨市| 怀宁县| 南汇区| 呼和浩特市| 阳泉市| 包头市| 壤塘县| 孝感市| 涡阳县| 昌江| 双桥区| 株洲县| 涿州市| 雅安市| 平顺县| 普格县| 信阳市| 和平区| 南昌县| 阳春市| 武功县| 彰化县| 黄山市| 文山县| 镇巴县| 无极县| 宁城县| 奎屯市| 凤凰县| 且末县| 施秉县| 策勒县| 沽源县| 香河县|