成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javastript函數(shù)

Jaden / 2841人閱讀

摘要:對(duì)匿名函數(shù)的理解報(bào)錯(cuò)不能直接使用。對(duì)匿名函數(shù)的理解報(bào)錯(cuò)匿名函數(shù)必須依附一個(gè)變量。對(duì)匿名函數(shù)的理解追夢(mèng)子追夢(mèng)子同樣的匿名函數(shù)當(dāng)做一個(gè)對(duì)象的屬性時(shí)也可以自調(diào)用。如果沒有名字必須要有一個(gè)依附體,如將這個(gè)匿名函數(shù)賦值給一個(gè)變量。

走在前端的大道上

匿名函數(shù)

從簡(jiǎn)單的字面理解就是一個(gè)沒有名字的函數(shù),但是如果說它只是這樣簡(jiǎn)單,那我也就沒有必要來說這些。

對(duì)匿名函數(shù)的理解1:
function(){
    console.log(1); 
}
// 報(bào)錯(cuò)

不能直接使用。

對(duì)匿名函數(shù)的理解2:
var a = function(){
    console.log(1);
}
a(); //1

匿名函數(shù)可以依附于一個(gè)變量,并且這個(gè)變量名就是這個(gè)匿名函數(shù)的名字。

var a = function(){
    console.log(1);
}
console.log(typeof a); //function
對(duì)匿名函數(shù)的理解3:
window.onload = function(){
    console.log("匿名函數(shù)");
}
// 匿名函數(shù)

當(dāng)匿名函數(shù)用在綁定事件中的時(shí)候,當(dāng)這個(gè)事件執(zhí)行的時(shí)候這個(gè)匿名函數(shù)也會(huì)被執(zhí)行。

對(duì)匿名函數(shù)的理解4:
(function(){
    console.log("追夢(mèng)子");
})()
// 追夢(mèng)子

如果將匿名函數(shù)放入到表達(dá)式中并且后面加上小括號(hào)會(huì)自動(dòng)執(zhí)行這個(gè)函數(shù)

對(duì)匿名函數(shù)的理解5:
var a = function(){
    console.log("自執(zhí)行函數(shù)");
}();
// 自執(zhí)行函數(shù)

匿名函數(shù)后面加括號(hào)會(huì)執(zhí)行這個(gè)函數(shù)。

對(duì)匿名函數(shù)的理解6:
function(){
    console.log(1);
}();
// 報(bào)錯(cuò)

匿名函數(shù)必須依附一個(gè)變量。

對(duì)匿名函數(shù)的理解7:
var a = {
    fn:function(){
        console.log(1);
    }
}
a.fn(); //1

匿名函數(shù)不只是可以依附于一個(gè)變量,也可以依附于一個(gè)對(duì)象的屬性。

對(duì)匿名函數(shù)的理解8:
var a = {
    fn:function(){
        console.log("追夢(mèng)子");
    }()
} //追夢(mèng)子

同樣的匿名函數(shù)當(dāng)做一個(gè)對(duì)象的屬性時(shí)也可以自調(diào)用。

對(duì)匿名函數(shù)的理解9:
var a = function(b){
    console.log(b)
}
a(52); //52

匿名函數(shù)也可以傳遞參數(shù)

對(duì)匿名函數(shù)的理解10:
(function(a){
    console.log(a);
})(10) //10

對(duì)于表達(dá)式函數(shù)同樣也可以傳遞參數(shù)

對(duì)匿名函數(shù)的理解11:
var a = function(b){
    console.log(b);
}(10); //10
console.log(a); //undefined

如果將一個(gè)自執(zhí)行的匿名函數(shù)并且沒有返回值,賦值給一個(gè)變量那么這個(gè)變量的值就是undefined。因?yàn)檫@個(gè)函數(shù)在賦值之前已經(jīng)執(zhí)行完了,而這個(gè)函數(shù)沒有返回值,所以就是undefined,如果有返回值,那么這個(gè)變量的值就是那個(gè)匿名函數(shù)的返回值。

var a = function(b){
    return b;
}(10);
console.log(a); //10
自執(zhí)行的匿名函數(shù)

why?為什么下面這段代碼會(huì)報(bào)錯(cuò)?

function(){
    console.log(1);
}
// 報(bào)錯(cuò)

  1、因?yàn)镋CAMScript規(guī)定函數(shù)的聲明必須要有名字,如果沒有名字的話,我們就沒有辦法找到它了,對(duì)于為什么自執(zhí)行函數(shù)為什么就可以不帶名字后面會(huì)講。

  2、如果沒有名字必須要有一個(gè)依附體,如:將這個(gè)匿名函數(shù)賦值給一個(gè)變量。

如果按照上面的說法js報(bào)錯(cuò)也是應(yīng)該的,那么我們用的下面這種代碼為什么就能夠正常運(yùn)行?

(function(){
    console.log(1);
})() //1

  之所以可以是因?yàn)槲覀儗⑦@個(gè)函數(shù)包含在了一個(gè)小括號(hào)中,why?小括號(hào)為什么這么神奇?

按照ECAMScript的規(guī)定,函數(shù)聲明是必須要有名字的,但是我們用括號(hào)擴(kuò)起來那么這個(gè)函數(shù)就不再是一個(gè)函數(shù)聲明了,而是一個(gè)函數(shù)表達(dá)式,你可以理解成下面這段代碼。

var a = function(){
    console.log(1);
}(); //1

  將一個(gè)匿名函數(shù)賦值給一個(gè)變量或者對(duì)象屬性就是函數(shù)表達(dá)式,函數(shù)表達(dá)式是可以不需要名字的,所以我們就可以直接通過這種方式來自動(dòng)的執(zhí)行這個(gè)函數(shù)。

再說一句

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

第一個(gè)括號(hào)是個(gè)運(yùn)算符,它會(huì)返回這個(gè)匿名函數(shù),然后最后一個(gè)小括號(hào)會(huì)執(zhí)行這個(gè)函數(shù)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/92242.html

相關(guān)文章

  • JavaScript面向?qū)ο缶幊獭狥unction類型

    摘要:在中,函數(shù)也是以對(duì)象的形式存在的。也可以使用對(duì)象作為參數(shù)返回值調(diào)用該函數(shù)的返回結(jié)果。調(diào)用自身的函數(shù)被稱之為遞歸函數(shù)。默認(rèn)名字的函數(shù)被稱之為匿名函數(shù)。內(nèi)部函數(shù)在函數(shù)中聲明內(nèi)嵌函數(shù),內(nèi)嵌函數(shù)對(duì)函數(shù)中的局部變量進(jìn)行訪問。 Function類型 Function與函數(shù) 函數(shù)它只定義一次,但可能被執(zhí)行或調(diào)用多次 。Function類型是JavaScript提供的引用類型之一,通過Function...

    Object 評(píng)論0 收藏0
  • JavaScript...Function類型...

    摘要:類型與函數(shù)函數(shù)是這樣一段代碼它只定義一次但可能被執(zhí)行或調(diào)用多次類型是提供的引用類型之一通過類型創(chuàng)建對(duì)象在中函數(shù)也是以對(duì)象的形式存在的每個(gè)函數(shù)都是一個(gè)對(duì)象函數(shù)名本質(zhì)就是一個(gè)變量名是指向某個(gè)對(duì)象的引用函數(shù)聲明方式字面量方式判斷函數(shù)是否為類型的中 Function類型 Function與函數(shù) 函數(shù)是這樣一段JavaScript代碼 它只定義一次 但可能被執(zhí)行或調(diào)用多次Function類型是J...

    Eirunye 評(píng)論0 收藏0
  • js函數(shù)探索

    摘要:關(guān)于構(gòu)造函數(shù)有幾點(diǎn)需要特別注意構(gòu)造函數(shù)允許在運(yùn)行時(shí)動(dòng)態(tài)的創(chuàng)建并編譯函數(shù)。而函數(shù)本身的表示該函數(shù)的形參。每一個(gè)函數(shù)都包含不同的原型對(duì)象,當(dāng)將函數(shù)用作構(gòu)造函數(shù)的時(shí)候,新創(chuàng)建的對(duì)象會(huì)從原型對(duì)象上繼承屬性。 該文章以收錄: 《JavaScript深入探索之路》 前言 函數(shù)是這樣的一段JavaScript代碼,它只定義一次,但是可能被執(zhí)行或調(diào)用任意次。你可能已經(jīng)從諸如子例程或者過程這些名字里...

    thursday 評(píng)論0 收藏0
  • 論普通函數(shù)和箭頭函數(shù)的區(qū)別以及箭頭函數(shù)的注意事項(xiàng)、不適用場(chǎng)景

    摘要:第二種情況是箭頭函數(shù)的如果指向普通函數(shù)它的繼承于該普通函數(shù)。箭頭函數(shù)的指向全局,使用會(huì)報(bào)未聲明的錯(cuò)誤。 showImg(https://segmentfault.com/img/remote/1460000018610072?w=600&h=400); 箭頭函數(shù)是ES6的API,相信很多人都知道,因?yàn)槠湔Z法上相對(duì)于普通函數(shù)更簡(jiǎn)潔,深受大家的喜愛。就是這種我們?nèi)粘i_發(fā)中一直在使用的API...

    paulquei 評(píng)論0 收藏0
  • JavaScript 之 面向?qū)ο?[ Function類型 ]

    摘要:類型描述在中的所有函數(shù)都是類型的對(duì)象定義函數(shù)的方式函數(shù)聲明方式函數(shù)名函數(shù)體函數(shù)聲明方式定義函數(shù)函數(shù)聲明方式顯示函數(shù)聲明方式字面量方式函數(shù)名函數(shù)體字面量方式定義函數(shù)字面量方式顯示字面量方式構(gòu)造函數(shù)方式函數(shù)名參數(shù),函數(shù)體函數(shù)的參數(shù)和函數(shù)體,都以 Function類型 描述 在JavaScript中的所有函數(shù)都是Function類型的對(duì)象 定義函數(shù)的方式 函數(shù)聲明方式 function 函數(shù)...

    AprilJ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<