麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > WEB開發 > 正文

JS 匿名函數的寫法

2024-04-27 15:18:07
字體:
來源:轉載
供稿:網友

js自執行函數的幾種不同寫法的比較,需要的朋友可以參考下

經常需要一個函數自執行,可惜這一種寫法是錯的:

function(){alert(1);}();

原因是前半段“function(){alert(1);}”被當成了函數聲明,而不是一個函數表達式,從而讓后面的“();”變得孤立,產生語法錯。

按上面的分析,這一段代碼雖說沒有語法錯,但也是不符合我們的預期的,因為這個函數并沒有自執行。

function(){alert(1);}(1);

綜上,癥結在于,如何明確代碼描述的是一個函數表達式,而不是函數聲明語句。 正確的寫法多種多樣,也各有利弊:

方法1:最前最后加括號

(function(){alert(1);}());

這是jslint推薦的寫法,好處是,能提醒閱讀代碼的人,這段代碼是一個整體。 例如,在有語法高亮匹配功能的編輯器里,光標在第一個左括號后時,最后一個右括號也會高亮,看代碼的人一眼就可以看到這個整體。 不過,對于某些寫代碼不喜歡在行后加分號的同學,也會形成一些坑坑,例如以下代碼會報運行錯:

var a=1(function(){alert(1);}());

方法2:function外面加括號

(function(){alert(1);})();

這種做法比方法1少了一個代碼整體性的好處。

方法3:function前面加運算符,常見的是!與void 。

!function(){alert(1);}();void function(){alert(2);}();

顯然,加上“!”或“+”等運算符,寫起來是最簡單的。 加上“void ”要敲五下鍵盤,但是聽說有一個好處是,比加”!”少一次邏輯運算。—-我只是聽說,不明所以。

最后,代表我個人,強烈支持方法1,即jslint的推薦寫法:

(function(){alert(1);}());

結尾加上一種方法: 將匿名函數賦值給變量

var selector = function(){ document.write('hello world');}();

這樣也是可行的


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚欧在线免费观看 | 国产中文99视频在线观看 | 精品一区二区三区免费毛片爱 | 免费a级黄色片 | 久久最新免费视频 | 成人性视频欧美一区二区三区 | wwwxxx国产 | 日韩视频不卡 | 一级片九九 | 国产91免费看 | 久久99精品久久久久久园产越南 | 日韩欧美激情视频 | 欧美性生活免费视频 | 伊人久操视频 | 黄色av网站免费 | 欧美精品一区二区中文字幕 | 久久精品1区2区 | 国产69精品久久久久9999不卡免费 | 久久国产精品区 | 久久久久久久亚洲视频 | 午夜爱爱福利 | 国产毛片毛片毛片 | 97久色 | 91麻豆精品国产91久久久无需广告 | 麻豆视频在线观看免费网站 | 日本教室三级在线看 | 国产亚洲精品久久久久久大师 | 日韩视频区 | 色毛片 | 久久国产精品电影 | sese综合| qyl在线视频精品免费观看 | 在线天堂中文字幕 | 免费观看高清视频网站 | 久久久久久久久久久久99 | 久久欧美亚洲另类专区91大神 | 一边吃奶一边插下面 | 一区二区网 | 亚洲一区二区三区视频 | 国产宾馆3p国语对白 | 国产精品刺激对白麻豆99 |