摘要:匿名函數(shù)我們將首先介紹匿名函數(shù)。通過(guò)使用匿名函數(shù),沒(méi)有必要把函數(shù)一直放在內(nèi)存中,所以使用匿名函數(shù)更加有效率。例下面兩個(gè)函數(shù)處理同樣的事情,而在給賦值結(jié)束之后一直保留但匿名函數(shù)則不會(huì)。它對(duì)事件處理程序非常有效。
1.匿名函數(shù)
我們將首先介紹匿名函數(shù)。一個(gè)匿名函數(shù)就是一個(gè)沒(méi)有名字的函數(shù)。
你可以認(rèn)為他們是一次性函數(shù)。當(dāng)你只需要用一次某個(gè)函數(shù)式,他們就特別有用。通過(guò)使用匿名函數(shù),沒(méi)有必要把函數(shù)一直放在內(nèi)存中,所以使用匿名函數(shù)更加有效率。
例Example:
下面兩個(gè)函數(shù)處理同樣的事情,而average在給z賦值結(jié)束之后一直保留——但匿名函數(shù)則不會(huì)。
2.函數(shù)作為值
從這里可以得出一個(gè)結(jié)論,函數(shù)是一個(gè)值就像字符串、數(shù)字或數(shù)組一樣。這還出現(xiàn)幾個(gè)問(wèn)題:
我是否可以把函數(shù)作為參數(shù)傳遞?
可以,見(jiàn)下面的例子。
是否可以實(shí)時(shí)生成函數(shù)?
當(dāng)然了,這是一個(gè)高級(jí)的主題,它可以通過(guò)eval函數(shù)來(lái)完成。
例:
這個(gè)例子演示了如何把函數(shù)作為參數(shù)傳遞。
3.兩種方式調(diào)用函數(shù)
在JavaScript中,有兩種調(diào)用函數(shù)的方式。一般的方式是把參數(shù)放在括號(hào)中,如alert(42)。另一種方式是同時(shí)把函數(shù)和參數(shù)都放在括號(hào)中,如(alert)(42)。
例:
alert(42);
(alert) (42);
(function(x) { alert(x-13); }) (55);
為什么函數(shù)兩邊的括號(hào)很重要:如果你寫(xiě)了括號(hào),那么在括號(hào)中的代碼就會(huì)被先計(jì)算。在計(jì)算之后,括號(hào)所在的地方就會(huì)有一個(gè)值。這個(gè)值可能是一個(gè)字符串、一個(gè)數(shù)字或一個(gè)函數(shù)。
4.“短路”條件調(diào)用
現(xiàn)在我們將學(xué)習(xí)如何使用“短路”條件調(diào)用。使用這個(gè)方法可以縮短源代碼同時(shí)代碼也變得更加可讀。
例:這個(gè)語(yǔ)法并不是用在左表達(dá)式上,而是用在右表達(dá)式上。
var f = false; var t = true;
var z;
if(f)
z = 4;
else if(t)
z = 2;
alert(z);
var f = false; var t = true;
var z = (f&&4)||(t&&2);
alert(z);
好處:
1.它有助于寫(xiě)出模塊化和可服用的代碼。
2.它對(duì)事件處理程序非常有效。
3.它很有趣!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82176.html
摘要:函數(shù)式編程,一看這個(gè)詞,簡(jiǎn)直就是學(xué)院派的典范。所以這期周刊,我們就重點(diǎn)引入的函數(shù)式編程,淺入淺出,一窺函數(shù)式編程的思想,可能讓你對(duì)編程語(yǔ)言的理解更加融會(huì)貫通一些。但從根本上來(lái)說(shuō),函數(shù)式編程就是關(guān)于如使用通用的可復(fù)用函數(shù)進(jìn)行組合編程。 showImg(https://segmentfault.com/img/bVGQuc); 函數(shù)式編程(Functional Programming),一...
摘要:為了盡可能提升互通性,已經(jīng)成為函數(shù)式編程庫(kù)遵循的實(shí)際標(biāo)準(zhǔn)。與輕量級(jí)函數(shù)式編程的概念相反,它以火力全開(kāi)的姿態(tài)進(jìn)軍的函數(shù)式編程世界。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關(guān)于譯者:這是一個(gè)流淌著滬江血液的純粹工程:認(rèn)真,是 HTML 最堅(jiān)實(shí)的梁柱;分享,是 CSS 里最閃耀的一瞥;總結(jié),...
摘要:所支持的面向?qū)ο缶幊贪ㄔ屠^承。發(fā)明于年的就是首批支持函數(shù)式編程的語(yǔ)言之一,而演算則可以說(shuō)是孕育了這門(mén)語(yǔ)言。即使在今天,這個(gè)家族的編程語(yǔ)言應(yīng)用范圍依然很廣。 1. 能說(shuō)出來(lái)兩種對(duì)于 JavaScript 工程師很重要的編程范式么? JavaScript 是一門(mén)多范式(multi-paradigm)的編程語(yǔ)言,它既支持命令式(imperative)/面向過(guò)程(procedural)編程...
摘要:所支持的面向?qū)ο缶幊贪ㄔ屠^承。發(fā)明于年的就是首批支持函數(shù)式編程的語(yǔ)言之一,而演算則可以說(shuō)是孕育了這門(mén)語(yǔ)言。即使在今天,這個(gè)家族的編程語(yǔ)言應(yīng)用范圍依然很廣。 1. 能說(shuō)出來(lái)兩種對(duì)于 JavaScript 工程師很重要的編程范式么? JavaScript 是一門(mén)多范式(multi-paradigm)的編程語(yǔ)言,它既支持命令式(imperative)/面向過(guò)程(procedural)編程...
摘要:所支持的面向?qū)ο缶幊贪ㄔ屠^承。發(fā)明于年的就是首批支持函數(shù)式編程的語(yǔ)言之一,而演算則可以說(shuō)是孕育了這門(mén)語(yǔ)言。即使在今天,這個(gè)家族的編程語(yǔ)言應(yīng)用范圍依然很廣。 1. 能說(shuō)出來(lái)兩種對(duì)于 JavaScript 工程師很重要的編程范式么? JavaScript 是一門(mén)多范式(multi-paradigm)的編程語(yǔ)言,它既支持命令式(imperative)/面向過(guò)程(procedural)編程...
閱讀 2444·2021-09-22 15:41
閱讀 1458·2021-08-19 10:54
閱讀 1768·2019-08-23 15:11
閱讀 3407·2019-08-23 10:23
閱讀 1434·2019-08-22 16:28
閱讀 804·2019-08-22 15:11
閱讀 746·2019-08-22 14:53
閱讀 720·2019-08-22 13:49