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