91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中匿名函數與變量有什么用

發布時間:2021-08-07 10:07:56 來源:億速云 閱讀:257 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關JavaScript中匿名函數與變量有什么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

匿名函數:沒有實際名字的函數。

匿名函數的作用:

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

具體內容如下所示:

以前都是直接用前端框架Bootstrap,突然想看看Javascript,發現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 變量的特別之處是,你可以引用稍后聲明的變量而不會引發異常。這一概念稱為變量聲明提升(hoisting);

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

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

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

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

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

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

關于“JavaScript中匿名函數與變量有什么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天门市| 游戏| 南涧| 裕民县| 陇西县| 岳普湖县| 德庆县| 义马市| 鄂尔多斯市| 营山县| 三台县| 嘉义县| 古浪县| 托克逊县| 泸州市| 沁水县| 施甸县| 永川市| 长海县| 崇明县| 阳新县| 阿合奇县| 昌图县| 扎赉特旗| 舞钢市| 刚察县| 广南县| 宜城市| 灵璧县| 天祝| 贵溪市| 亳州市| 明光市| 偃师市| 南川市| 山丹县| 偏关县| 台中县| 灵宝市| 福海县| 湘阴县|