国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

比較不錯的函數(shù)式JavaScript編程指南教程

2024-05-06 14:18:02
字體:
供稿:網(wǎng)友

你是否知道JavaScript其實也是一個函數(shù)式編程語言呢?本指南將教你如何利用JavaScript的函數(shù)式特性。

要求:你應(yīng)當(dāng)已經(jīng)對JavaScript和DOM有了一個基本的了解。

寫這篇指南的目的是因為關(guān)于JavaScript編程的資料太多了但是極少的資料提到了JavaScript的函數(shù)式特性。在本指南中,我只會講解這些基本知識而不會深入其它的函數(shù)式語言或這是Lambda算子。

你可以點擊所有的例子然后你所看到的代碼就會被執(zhí)行,這樣就可以令指南變得具有交互性。你也可以使用這個沙箱來嘗試。

第一課 —— 匿名函數(shù)

我們將首先介紹匿名函數(shù)。一個匿名函數(shù)就是一個沒有名字的函數(shù)。
你可以認為他們是一次性函數(shù)。當(dāng)你只需要用一次某個函數(shù)式,他們就特別有用。通過使用匿名函數(shù),沒有必要把函數(shù)一直放在內(nèi)存中,所以使用匿名函數(shù)更加有效率。

例Example:

下面兩個函數(shù)處理同樣的事情,而average在給z賦值結(jié)束之后一直保留——但匿名函數(shù)則不會。

function average(x,y) {  return (x+y)/2; } var z = average(1,3); alert(z); 
var z = function(x,y) {    return (x+y)/2;   } (1,3); alert(z); 

這很自然得引出了我們下面的一節(jié)課函數(shù)作為值。

第二課 - 函數(shù)作為值

事實上,我們一般在JavaScript中聲明函數(shù)的方式可以看作是一個簡化了的語法(也就是語法糖syntactic sugar)。

例:

下面兩個表達式其實完全一樣。所以左邊的表達式僅僅是右邊的簡寫。
function average(x,y) {  return (x+y)/2; } alert( average(1,3) ); 
var average = function(x,y) {  return (x+y)/2; } alert( average(1,3) ); 

從這里可以得出一個結(jié)論,函數(shù)是一個值就像字符串、數(shù)字或數(shù)組一樣。這還出現(xiàn)幾個問題:

我是否可以把函數(shù)作為參數(shù)傳遞? 可以,見下面的例子。 是否可以實時生成函數(shù)? 當(dāng)然了,這是一個高級的主題,它可以通過eval函數(shù)來完成。小提示:看看本頁面的源代碼。

例:

這個例子演示了如何把函數(shù)作為參數(shù)傳遞。

var applyFun = function (f,x,y) { return f(x,y); }; var add = function(x,y) {  return x+y; }; alert( applyFun(add,3,4) ); // 7 

第三課 - 兩種方式調(diào)用函數(shù)

在JavaScript中,有兩種調(diào)用函數(shù)的方式。一般的方式是把參數(shù)放在括號中,如alert(42)。另一種方式是同時把函數(shù)和參數(shù)都放在括號中,如(alert)(42)

例:

alert(42); 
(alert) (42); 
(function(x) { alert(x-13); }) (55); 

為什么函數(shù)兩邊的括號很重要:如果你寫了括號,那么在括號中的代碼就會被先計算。在計算之后,括號所在的地方就會有一個值。這個值可能是一個字符串、一個數(shù)字或一個函數(shù)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 大新县| 澎湖县| 建水县| 蓬莱市| 山东省| 中方县| 张家界市| 阿拉善盟| 潜江市| 连平县| 建水县| 淮南市| 河西区| 甘德县| 巴南区| 灵宝市| 叶城县| 花垣县| 比如县| 信宜市| 游戏| 海晏县| 淮北市| 泰来县| 张掖市| 大庆市| 尚义县| 永平县| 定日县| 娄底市| 丰镇市| 马公市| 重庆市| 惠东县| 曲阳县| 青州市| 松江区| 政和县| 全南县| 宜丰县| 婺源县|