JS自執(zhí)行函數(shù)放案,匿名函數(shù)

自執(zhí)行函數(shù)

  1. 先來看個(gè)最簡(jiǎn)單的自執(zhí)行函數(shù)
(function(){
    
}());

相當(dāng)于聲明并調(diào)用

var b=function () {
   
    }
b()
  1. 自執(zhí)行函數(shù)也可以有名字
function b(){
    ...
}()
  1. 自執(zhí)行函數(shù)也可以傳參
function b(i){
    console.log(i)
}(5)

下面我們來總結(jié)一下自執(zhí)行函數(shù):

? 自執(zhí)行函數(shù)在調(diào)用上與普通函數(shù)一樣和蚪,可以匿名,可以傳參淑趾。只不過是在聲明的時(shí)候自調(diào)用了一次

? 自執(zhí)行函數(shù)的寫法有兩種 , 推薦第二種寫法

   // 1.第一種方式: 兩個(gè)()() 阳仔,function寫在第一個(gè)()里面
   (function(){})()

   // 2.第二種方式: 一個(gè)() ,里面寫 function(){}()
   (function(){}())

匿名函數(shù)

匿名函數(shù)就是沒有名字的函數(shù)

匿名函數(shù)通常與自執(zhí)行函數(shù)結(jié)合使用,因?yàn)槟涿瘮?shù)沒有函數(shù)名扣泊,沒辦法調(diào)用近范,通過自執(zhí)行調(diào)用

匿名函數(shù)的基本形式為

(function(){...})();

前面的括號(hào)包含函數(shù)體,后面的括號(hào)就是給匿名函數(shù)傳遞參數(shù)并立即執(zhí)行之

匿名函數(shù)的作用是避免全局變量的污染以及函數(shù)名的沖突

1.小括號(hào)的作用

小括號(hào)能把我們的表達(dá)式組合分塊旷赖,并且每一塊顺又,也就是每一對(duì)小括號(hào),都有一個(gè)返回值等孵。

這個(gè)返回值實(shí)際上也就是小括號(hào)中表達(dá)式的返回值。

所以蹂空,當(dāng)我們用一對(duì)小括號(hào)把匿名函數(shù)括起來的時(shí)候俯萌,實(shí)際上小括號(hào)對(duì)返回的,就是一個(gè)匿名函數(shù)的Function 對(duì)象上枕。

因此咐熙,小括號(hào)對(duì)加上匿名函數(shù)就如同有名字的函數(shù)般被我們?nèi)〉盟囊梦恢昧恕?/p>

所以如果在這個(gè)引用變量后面再加上參數(shù)列表,就會(huì)實(shí)現(xiàn)普通函數(shù)的調(diào)用形式辨萍。

簡(jiǎn)單來說就是小括號(hào)有返回值棋恼,也就是小括號(hào)內(nèi)的函數(shù)或者表達(dá)式的返回值,所以說小括號(hào)內(nèi)的function返回值等于小括號(hào)的返回值

2.匿名函數(shù)的寫法

方式1锈玉,調(diào)用函數(shù)爪飘,得到返回值。強(qiáng)制運(yùn)算符使函數(shù)調(diào)用執(zhí)行

(function(x,y){
    return x+y;
}(3,4)); 

方式2拉背,調(diào)用函數(shù)师崎,得到返回值。強(qiáng)制函數(shù)直接量執(zhí)行再返回一個(gè)引用椅棺,引用再去調(diào)用執(zhí)行

(function(x,y){
    return x+y;
})(3,4); 

這種方式也是很多庫(kù)愛用的調(diào)用方式犁罩,如jQuery齐蔽,Mootools。

方式3床估,使用void

void function(x) {
    x = x-1;
}(9);

方式4含滴,使用-/+運(yùn)算符

-function(x,y){
    return x+y;
}(3,4);

+function(x,y){
    return x+y;
}(3,4);

--function(x,y){
    return x+y;
}(3,4);

++function(x,y){
    return x+y;
}(3,4); 

方式5,使用波浪符(~)

~function(x, y) {
    return x+y;
}(3, 4); 

方式6丐巫,匿名函數(shù)執(zhí)行放在中括號(hào)內(nèi)

[function(){
    console.log(this) // 瀏覽器得控制臺(tái)輸出window
}(this)] 

方式7谈况,匿名函數(shù)前加typeof

typeof function(){
console.log(this) // 瀏覽器得控制臺(tái)輸出window
}(this) 

匿名自執(zhí)行函數(shù)

匿名自執(zhí)行函數(shù)首先是一個(gè)匿名函數(shù),但是這個(gè)函數(shù)是可以自己自動(dòng)執(zhí)行的鞋吉,不需要借助其他的元素

匿名自執(zhí)行函數(shù)的作用:

? 匿名自執(zhí)行函數(shù)最常見的作用是用于實(shí)現(xiàn)閉包的情況中

? 匿名自執(zhí)行函數(shù)還可以用于在js中模擬創(chuàng)建塊級(jí)作用域

匿名函數(shù)

function () {
   
    }

自執(zhí)行

(function(){
          //代碼
 })();

匿名函數(shù)自執(zhí)行 實(shí)現(xiàn) 異步函數(shù)遞歸

詳情可參考 icode倉(cāng)庫(kù)的 js/異步遞歸調(diào)用.js

目標(biāo):在setTimeout異步函數(shù)中依次 打印 0 1 2 3 4

(function async(i) {
    
    if (i >= 5)
        return
    else
        
        setTimeout(() => {
            console.log(i)
            i++
            async(i)
        }, 1000)
    
})(0)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鸦做,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子谓着,更是在濱河造成了極大的恐慌泼诱,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赊锚,死亡現(xiàn)場(chǎng)離奇詭異治筒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)舷蒲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門耸袜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人牲平,你說我怎么就攤上這事堤框。” “怎么了纵柿?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵蜈抓,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我昂儒,道長(zhǎng)沟使,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任渊跋,我火速辦了婚禮腊嗡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拾酝。我一直安慰自己燕少,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布微宝。 她就那樣靜靜地躺著棺亭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上镶摘,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天嗽桩,我揣著相機(jī)與錄音,去河邊找鬼凄敢。 笑死碌冶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的涝缝。 我是一名探鬼主播扑庞,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼拒逮!你這毒婦竟也來了罐氨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤滩援,失蹤者是張志新(化名)和其女友劉穎栅隐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玩徊,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡租悄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恩袱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泣棋。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖畔塔,靈堂內(nèi)的尸體忽然破棺而出潭辈,到底是詐尸還是另有隱情,我是刑警寧澤澈吨,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布萎胰,位于F島的核電站,受9級(jí)特大地震影響棚辽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冰肴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一屈藐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧熙尉,春花似錦联逻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至铅歼,卻和暖如春公壤,著一層夾襖步出監(jiān)牢的瞬間换可,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工厦幅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沾鳄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓确憨,卻偏偏與公主長(zhǎng)得像译荞,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子休弃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容