亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

js自執(zhí)行函數的幾種不同寫法的比較

 更新時間:2012年08月16日 11:31:19   作者:  
js自執(zhí)行函數的幾種不同寫法的比較,需要的朋友可以參考下
經常需要一個函數自執(zhí)行,可惜這一種寫法是錯的:
復制代碼 代碼如下:

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

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

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

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);}());

相關文章

  • javascript suggest效果 自動完成實現代碼分享

    javascript suggest效果 自動完成實現代碼分享

    像百度與google,當我們往搜索框輸入東西時就會出現一排列表提示用戶有什么熱門或適合的候選詞,這種效果就叫suggest。本文將一步步教你如何設計它
    2012-02-02
  • 使用JS監(jiān)聽鍵盤按下事件(keydown event)

    使用JS監(jiān)聽鍵盤按下事件(keydown event)

    這篇文章主要介紹了使用JS監(jiān)聽鍵盤按下事件(keydown event),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • 多個表單中如何獲得這個文件上傳的網址實現js代碼

    多個表單中如何獲得這個文件上傳的網址實現js代碼

    假設一個網頁里有多個表單,其中一個表單里有文件上傳,問題是如何獲得這個文件上傳的網址呢,接下來為大家介紹下實現的js代碼,感興趣的朋友可以參考下哈,希望可以幫助到你
    2013-03-03
  • Javascript之旅 對象的原型鏈之由來

    Javascript之旅 對象的原型鏈之由來

    本人是Javascript菜鳥,下面是前幾天學習Javascript的旅程心得,希望對和我一樣的入門者有點用,也希望高手批評指正。
    2010-08-08
  • Bootstrap彈出帶合法性檢查的登錄框實例代碼【推薦】

    Bootstrap彈出帶合法性檢查的登錄框實例代碼【推薦】

    這篇文章主要介紹了Bootstrap彈出帶合法性檢查的登錄框實例代碼【推薦】的相關資料,需要的朋友可以參考下
    2016-06-06
  • js實現瀏覽器的各種菜單命令比如打印、查看源文件等等

    js實現瀏覽器的各種菜單命令比如打印、查看源文件等等

    瀏覽器的各種菜單命令比如打印、查看源文件、加入收藏等等,這些在js中時完全可以實現的,本文搜集整理了一些,感興趣的朋友可以參考下
    2013-10-10
  • 微信小程序中實現車牌輸入功能

    微信小程序中實現車牌輸入功能

    我們都知道車牌是有一定規(guī)律的,本文實現了微信小程序中實現車牌輸入功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 在線演示常用javascript特效

    在線演示常用javascript特效

    圖形顯示特效鼠標驅動圖片變化隨機顯示banner圖片隨意移動圖片定期消失字符連續(xù)消隱文字不停變色JavaScript容錯...圖片循環(huán)顯現QQ菜單生成器圖形顯示特效連續(xù)滾動的圖片圖片水中倒影純JavaScript時鐘圖片翻滾導航星星滿天閃爍左側的極酷...
    2008-04-04
  • 淺談js中的attributes和Attribute的用法與區(qū)別

    淺談js中的attributes和Attribute的用法與區(qū)別

    這篇文章主要介紹了淺談js中的attributes和Attribute的用法與區(qū)別,attributes可以獲取一個對象中的一個屬性,attributes 屬性返回指定節(jié)點屬性的集合,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • javascript設計模式之模塊模式學習筆記

    javascript設計模式之模塊模式學習筆記

    這篇文章主要為大家詳細介紹了javascript設計模式之模塊模式學習筆記,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評論