91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS中學習函數式編程的五項支柱是什么

發布時間:2021-06-26 13:36:34 來源:億速云 閱讀:125 作者:chen 欄目:web開發

本篇內容介紹了“JS中學習函數式編程的五項支柱是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

 一、什么是函數式編程

從FP函數式編程的眼中看來,世界的萬事萬物就是處理數據流:

input --> process -- output

FP函數式編程是一種思維方式:

JS中學習函數式編程的五項支柱是什么

比如非函數式,會這樣寫程序:

> var name = "gaowei"; > var greeting = "Hello,I'm ";; > console.log(greeting + name) Hello,I'm gaowei

而函數范式編程則會這樣寫程序:

> function greet(name) { ... return "Hi, I'm " + name; ... } > greet("Gaowei"); "Hi, I'm Gaowei"

 二、用純函數 pure-function,避免 副作用 side-effects

舉例說明“非純函數”,

> let name = "Gaowei"; > function greet() { ... console.log("Hi, I'm " + name); ... } > greet() Hi, I'm gaowei

這就不是一個純函數,因為沒有返回結果。

而純函數則是:

> function greet(name) { ... return "Hi, I'm " + name; ... }

 三、使用高階函數 higher-order-function,函數本身可作為輸入或者輸出

在高階函數中,函數本身又可作為輸入與輸出。

> function setAdjectifier(adjective) { ... return function(description) { ..... return adjective + " " + description; ..... } ... } > let greatifier = setAdjectifier("great"); > greatifier("meeting") 'great meeting'

 四、不要迭代,用 map, reduce 和 filter

map與filter之間的關聯與區別,可以參見下面這張圖:

JS中學習函數式編程的五項支柱是什么

五、不要更改輸入數據,用不可變更的數據結構

舉例,我們慣常的做法常常為:

> let fruits = ['apple', 'banana', 'peach']; > fruits[2] = 'orange' 'orange' > fruits [ 'apple', 'banana', 'orange' ]

上面的mutation的處理方法,將會修改原始數據。

嘗試 functional-programming的方式為:

> newFruits = fruits.map( rm => rm == "orange" ? "peach" : rm) [ 'apple', 'banana', 'peach' ] > fruits [ 'apple', 'banana', 'orange' ]

而能夠高效處理 immutable 數據的常用庫為:Mori, immutable.js, Underscor, Lodash, Ramda 等。

“JS中學習函數式編程的五項支柱是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

中超| 南宁市| 伽师县| 平乐县| 汶川县| 新民市| 甘孜| 桦甸市| 祥云县| 淮滨县| 康乐县| 乐都县| 定南县| 堆龙德庆县| 新干县| 蒙城县| 定远县| 德钦县| 西华县| 河津市| 江城| 银川市| 兴安县| 金华市| 通河县| 巴东县| 准格尔旗| 三河市| 格尔木市| 平定县| 巴塘县| 顺平县| 科技| 巴林右旗| 永寿县| 吉林省| 永泰县| 彭阳县| 女性| 峨边| 固安县|