發表於2024-12-27
函數式編程是一種古老的編程範式。近些年來,隨著RxJS 等函數式框架的流行,它煥發瞭青春,再次進入瞭我們的視野。與Haskell 等語言相比,JavaScript 雖然不是一種純函數語言,但它將函數視為一等公民,非常適閤函數式編程範式。函數式編程為應用帶來的可維護性、可測試性和可擴展性是不言而喻的,而純函數、高階函數、柯裏化、組閤、Monad 等諸多概念往往令剛剛接觸它的人無從下手。
快速掌握一個知識體係的秘訣是抓住概念並理清概念之間的關係。《JavaScript ES6 函數式編程入門經典》將函數式編程中那些抽象的原理分解為一個個簡單的概念,娓娓道來,並配以豐富的實戰案例,逐步帶你領略函數式編程的魅力。掌握函數式編程思想對開發與理解單數據流應用非常有幫助,願《JavaScript ES6函數式編程入門經典》帶你開啓這段非凡的旅程!
《JavaScriptES6函數式編程入門經典》使用JavaScriptES6帶你學習函數式編程。你將學習柯裏化、偏函數、高階函數以及Monad等概念。
目前,編程語言已經將焦點從對象轉移到函數。JavaScript支持函數式編程,並允許開發者編寫精心設計的代碼。
主要內容
●掌握函數式編程的概念
●清楚函數在JavaScript中的地位
●理解真實的函數式類庫,並創建一個模擬underscore.js的函數式類庫
●實踐純錯誤處理技術,例如函子和Monad
●瞭解ES6的函數式編程特性,例如擴展運算符和Generator
AntoAravinth是來自VisualBIChennai研發中心的高級商業智能開發工程師。在過去的五年中,他曾使用Java、JavaScript語言以及ReactJs、Angular等框架開發Web應用。他對Web和Web標準有透徹的理解。他也是流行框架ReactJs、Selenium和Groovy的開源貢獻者。AntoAravinth在業餘時間喜歡打乒乓球。他很有幽默感!他也是ReactQuickly一書的技術開發編輯,此書在2017年由Manning齣版社齣版。
第1章函數式編程簡介1
1.1什麼是函數式編程?為何它重要1
1.2引用透明性4
1.3命令式、聲明式與抽象5
1.4函數式編程的好處7
1.5純函數7
1.5.1純函數産生可測試的代碼7
1.5.2閤理的代碼9
1.6並發代碼10
1.7可緩存11
1.8管道與組閤12
1.9純函數是數學函數13
1.10我們要構建什麼15
1.11JavaScript是函數式編程語言嗎15
1.12小結16
第2章JavaScript函數基礎17
2.1ECMAScript曆史18
2.2創建並執行函數19
2.2.1第一個函數19
2.2.2嚴格模式21
2.2.3return語句是可選的22
2.2.4多語句函數22
2.2.5函數參數24
2.2.6ES5函數在ES6中是有效的24
2.3設置項目24
2.3.1初始設置24
2.3.2用第一個函數式方法處理循環問題26
2.3.3export要點28
2.3.4import要點28
2.3.5使用babel-node運行代碼29
2.3.6在npm中創建腳本30
2.3.7從git上運行源代碼31
2.4小結31
第3章高階函數33
3.1理解數據34
3.1.1理解JavaScript數據類型34
3.1.2存儲函數35
3.1.3傳遞函數35
3.1.4返迴函數37
3.2抽象和高階函數38
3.2.1抽象的定義38
3.2.2通過高階函數實現抽象39
3.3真實的高階函數42
3.3.1every函數42
3.3.2some函數44
3.3.3sort函數44
3.4小結48
第4章閉包與高階函數49
4.1理解閉包50
4.1.1什麼是閉包50
4.1.2記住閉包生成的位置52
4.1.3迴顧sortBy函數53
4.2真實的高階函數(續)54
4.2.1tap函數54
4.2.2unary函數56
4.2.3once函數57
4.2.4memoized函數58
4.3小結60
第5章數組的函數式編程61
5.1數組的函數式方法62
5.1.1map62
5.1.2filter65
5.2連接操作67
5.3reduce函數71
5.4zip數組77
5.5小結81
第6章柯裏化與偏應用83
6.1一些術語84
6.1.1一元函數84
6.1.2二元函數84
6.1.3變參函數84
6.2柯裏化86
6.2.1柯裏化用例87
6.2.2日誌函數——應用柯裏化89
6.2.3迴顧curry90
6.2.4迴顧日誌函數93
6.3柯裏化實戰94
6.3.1在數組內容中查找數字94
6.3.2求數組的平方95
6.4數據流96
6.4.1偏應用96
6.4.2實現偏函數97
6.4.3柯裏化與偏應用99
6.5小結100
第7章組閤與管道101
7.1組閤的概念102
7.2函數式組閤104
7.2.1迴顧map與filter104
7.2.2compose函數106
7.3應用compose函數106
7.3.1引入curry與partial108
7.3.2組閤多個函數111
7.4管道/序列113
7.5組閤的優勢114
7.5.1組閤滿足結閤律114
7.5.2使用tap函數調試115
7.6小結116
第8章函子117
8.1什麼是函子118
8.1.1函子是容器118
8.1.2函子實現瞭map方法120
8.2MayBe函子121
8.2.1實現MayBe函子122
8.2.2簡單用例123
8.2.3真實用例125
8.3Either函子129
8.3.1實現Either函子130
8.3.2reddit例子的Either版本131
8.4Pointed函子134
8.5小結134
第9章深入理解Monad135
9.1根據搜索詞條獲取Reddit評論136
9.2問題描述136
9.2.1實現第一步138
9.2.2閤並Reddit調用141
9.2.3多個map的問題144
9.3通過join解決問題146
9.3.1實現join146
9.3.2實現chain148
9.4小結151
第10章使用Generator153
10.1異步代碼及其問題154
10.2Generator基礎156
10.2.1創建Generator156
10.2.2Generator的注意事項157
10.2.3yield關鍵字158
10.2.4done屬性160
10.2.5嚮Generator傳遞數據162
10.3使用Generator處理異步調用164
10.3.1一個簡單的案例164
10.3.2一個真實的案例169
10.4小結172
附錄173
函數式編程是一種古老的編程範式。近些年來,隨著RxJS等函數式框架的流行,它煥發瞭青春,再次進入瞭我們的視野。與Haskell等語言相比,JavaScript雖然不是一種純函數語言,但它將函數視為一等公民,非常適閤函數式編程範式。函數式編程為應用帶來的可維護性、可測試性和可擴展性是不言而喻的,而純函數、高階函數、柯裏化、組閤、Monad等諸多概念往往令剛剛接觸它的人無從下手。
快速掌握一個知識體係的秘訣是抓住概念並理清概念之間的關係。本書將函數式編程中那些抽象的原理分解為一個個簡單的概念,娓娓道來,並配以豐富的實戰案例,逐步帶你領略函數式編程的魅力。掌握函數式編程思想對開發與理解單數據流應用非常有幫助,願本書帶你開啓這段非凡的旅程!
本譯作能夠順利完成,首先感謝清華大學齣版社李陽老師的推薦與信任,提供的非常有價值的建議使我在翻譯的過程中受益良多。感謝我的妻子對我的理解與支持。感謝如天使般可愛的女兒Eva,你是上天賜給我最好的禮物。本書全部內容由梁宵翻譯,參與翻譯的還有騰訊高級工程師王誌壽和Uber高級工程師羅譽傢。
在翻譯過程中我盡力修正瞭一些原作的小錯誤,但由於水平有限,難免存在不足之處,懇請廣大
JavaScript ES6 函數式編程入門經典(Web開發經典叢書) 下載 mobi pdf epub txt 電子書 格式 2024
JavaScript ES6 函數式編程入門經典(Web開發經典叢書) 下載 mobi epub pdf 電子書學習新的計算機語言
評分書還不錯,看齣版日期蠻新的正在學習中希望能有所收獲,乾這行就要不斷學習!
評分,
評分真是超級簡單的函數式入門書籍,適閤入門者。內容對於我來說過於簡單,隻起到簡單的溫故一下核心函數式編程概念的作用。不過我已經將這本書轉給我的同事,應該會物有所值。
評分不錯不錯不錯不錯不錯不錯
評分講瞭些函數式的一些概念 以及一些實例 適閤入門
評分好書,值得認真細細品讀,提高自己的代碼能力
評分還不錯
評分物理很快,包裝不錯,是希望的
JavaScript ES6 函數式編程入門經典(Web開發經典叢書) mobi epub pdf txt 電子書 格式下載 2024