最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

函數(shù)式JavaScript(一)簡介_javascript技巧

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:25:15
文檔

函數(shù)式JavaScript(一)簡介_javascript技巧

函數(shù)式JavaScript(一)簡介_javascript技巧:讓我們假裝現(xiàn)在要完成一個(gè)任務(wù):盡可能按照函數(shù)式語言的原則來寫JavaScript代碼。 接下來一系列文章就是為了讓你們和我一起開始這樣一段旅程。首先,我們需要糾正一些你們腦子中可能有的對函數(shù)式語言錯(cuò)誤的概念。 JS語言中的函數(shù)式被嚴(yán)重誤解。 很顯然,有相
推薦度:
導(dǎo)讀函數(shù)式JavaScript(一)簡介_javascript技巧:讓我們假裝現(xiàn)在要完成一個(gè)任務(wù):盡可能按照函數(shù)式語言的原則來寫JavaScript代碼。 接下來一系列文章就是為了讓你們和我一起開始這樣一段旅程。首先,我們需要糾正一些你們腦子中可能有的對函數(shù)式語言錯(cuò)誤的概念。 JS語言中的函數(shù)式被嚴(yán)重誤解。 很顯然,有相

讓我們假裝現(xiàn)在要完成一個(gè)任務(wù):盡可能按照函數(shù)式語言的原則來寫JavaScript代碼。

接下來一系列文章就是為了讓你們和我一起開始這樣一段旅程。首先,我們需要糾正一些你們腦子中可能有的對函數(shù)式語言錯(cuò)誤的概念。

JS語言中的函數(shù)式被嚴(yán)重誤解。

很顯然,有相當(dāng)多的開發(fā)者要每天用JavaScript的函數(shù)式范式 。我想說有更大一部分JavaScript 開發(fā)者沒有真正理解這些東西。

我認(rèn)為造成這個(gè)的原因是絕大多數(shù)用于Web服務(wù)器端的開發(fā)語言都是來源于C,而大家都知道這些語言不是函數(shù)式語言。

一般有兩個(gè)層面的困惑。第一層是關(guān)于以下示例中的用法,這是jQuery中非常常見的用法:

在上面這段代碼中:我們傳了一個(gè)匿名函數(shù)作為參數(shù),這就是在JavaScript 中臭名昭著的回調(diào)函數(shù)。這些函數(shù)會(huì)被調(diào)用嗎?根本不會(huì)!

上面這個(gè)例子說明了函數(shù)式語言的一個(gè)關(guān)鍵特征:函數(shù)是一種參數(shù)。另一方面,這個(gè)例子只用三行代碼違反了幾乎所有能違反的函數(shù)式編程范式。

第二層的疑惑是更微妙的??纯催@個(gè):只有少數(shù)時(shí)髦的JS開發(fā)者是這樣看自己的:

嗯,真不錯(cuò)!但是我已經(jīng)完全了解函數(shù)式編程,我在所有的項(xiàng)目中都用了Underscore.js。

Underscore.js是一個(gè)非常著名并且隨處可見的JavaScript 庫。舉個(gè)例子:假設(shè)我有一組詞,并且我需要每個(gè)詞對應(yīng)的前兩個(gè)字母。這用Underscore.js來寫非常簡單:

看這個(gè)JavaScript 例子。我用了函數(shù)式中精致又實(shí)用的函數(shù):_.map和_.first。對于這個(gè)大家有什么想法?

雖然underscore.js和 _.map這樣的函數(shù)都是很有用的函數(shù)式范式,但是像這個(gè)例子中這樣把這些東西放在一起還是讓我感到有些難以理解。我們真的需要這樣做嗎?

如果我們開始思考怎樣才能更加“函數(shù)式”,也許我們可以把上面的例子改寫成這樣:

仔細(xì)想想,這一行代碼和上面的5行是一樣的效果。很多詞只是參數(shù)或占位符。真正的邏輯在于把map函數(shù)、first函數(shù)和常量2用有意義的方式組合在一起。

有些人可能在想:這個(gè)例子中的神奇之處在哪里?畢竟,說任何一個(gè)例子神奇都有點(diǎn)像吹噓,對吧?

我正打算用接下來的兩篇文章來解釋上面這個(gè)例子到底神奇在哪,如果你好奇的話,可以繼續(xù)往下看。

這一系列博客是為了幫助大家怎樣把函數(shù)式編程的美妙之處應(yīng)用到你的JavaScript代碼中。

下一節(jié)中,我將討論JavaScript 語言中函數(shù)式及非函數(shù)式的多種元素。有了這些知識(shí),我們可以通過把這些元素整合在一起,慢慢的在腦中形成函數(shù)式編程的完整體系,并且理解它們在JavaScript中的表現(xiàn)。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

函數(shù)式JavaScript(一)簡介_javascript技巧

函數(shù)式JavaScript(一)簡介_javascript技巧:讓我們假裝現(xiàn)在要完成一個(gè)任務(wù):盡可能按照函數(shù)式語言的原則來寫JavaScript代碼。 接下來一系列文章就是為了讓你們和我一起開始這樣一段旅程。首先,我們需要糾正一些你們腦子中可能有的對函數(shù)式語言錯(cuò)誤的概念。 JS語言中的函數(shù)式被嚴(yán)重誤解。 很顯然,有相
推薦度:
標(biāo)簽: js 簡介 函數(shù)
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top