JavaScript 12

函數(shù)的聲明方式

A.基本語法? ? ? function 關(guān)鍵字

function 函數(shù)名([參數(shù)1],[參數(shù)2]....){

函數(shù)體

[retrun] //返回值

}

B.字面量定義的形式(匿名函數(shù))

var 變量=function ([參數(shù)1],[參數(shù)2]....){

函數(shù)體

[retrun] //返回值

}

C.以對象的形式來聲明new 關(guān)鍵字。

var 變量=new Function([參數(shù)1],[參數(shù)2]...,"函數(shù)體");

定義函數(shù)的方式

一、函數(shù)聲明(function關(guān)鍵字)

二、函數(shù)表達式 ( 匿名函數(shù))

函數(shù)聲明提升

關(guān)于函數(shù)聲明,它的一個重要特征就是函數(shù)聲明提升,

意思是在執(zhí)行代碼之前會先讀取函數(shù)聲明,這就意味著可以

把函數(shù)聲明放在調(diào)用它的語句后面。

show();

function show(){

alert(“hello world”)

}

這個不會拋出錯誤,因為在代碼執(zhí)行之前會先讀取函數(shù)聲明

函數(shù)表達式

var? foo=function(arg0,arg1,arg2){

//函數(shù)體

};

創(chuàng)建一個函數(shù)并將它賦值給變量foo,這種情況下創(chuàng)建的函數(shù)叫匿名函數(shù),因為function關(guān)鍵字后面沒有標識符。

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

(匿名函數(shù)有時候也叫拉姆達函數(shù))

匿名函數(shù)的調(diào)用

通過括號來調(diào)用

– 變量名()

自調(diào)用

– (function (){})()

(+ - ! ~ ())

要調(diào)用一個函數(shù),我們必須要有方法定位它,引用它。所以,我們會需要幫它找一個名字。例如:

var abc=function(x,y){

return x+y;

}

alert(abc(2,3)); // "5"

上面的操作其實就等于換個方式去定義函數(shù),這種用法是我們比較頻繁遇到的。例如我們在設(shè)定一個DOM元素事件處理函數(shù)的時候,我們通常都不會為他們定名字,而是賦予它的對應事件引用一個匿名函數(shù)。

對匿名函數(shù)的調(diào)用其實還有一種做法,也就是我們看到的jQuery 片段—— 使用() 將匿名函數(shù)括起來,然后后面再加一對小括號(包含參數(shù)列表)。我們再看一下以下例子:

alert((function(x,y){return x+y;})(2,3));// "5"

使用匿名函數(shù)的情況

語法:function(){函數(shù)體;}

因為是匿名函數(shù),所以一般也不會有參數(shù)傳給他。

為什么要創(chuàng)建匿名函數(shù)呢?在什么情況下會使用到匿名函數(shù)。匿名函數(shù)主要有兩種常用的場景,一是回調(diào)函數(shù),二是直接執(zhí)行函數(shù)。

回調(diào)函數(shù),像ajax的異步操作,就需要回調(diào)函數(shù)。

你不是一個人,有人在等你,為了她,一定要不停的奔跑,不停的進步,不停的成長

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容