注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)JavaScript ES8函數(shù)式編程實(shí)踐入門(第2版)

JavaScript ES8函數(shù)式編程實(shí)踐入門(第2版)

JavaScript ES8函數(shù)式編程實(shí)踐入門(第2版)

定 價(jià):¥59.80

作 者: [印] 安托·阿拉文思(Anto Aravinth) 著,梁平 譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書(shū)可以去


ISBN: 9787302597773 出版時(shí)間: 2022-03-01 包裝:
開(kāi)本: 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  主要內(nèi)容 ● 探討函數(shù)式編程的概念,如字符串填充和異步函數(shù) ● 解析如何在JavaScript中處理函數(shù) ● 創(chuàng)建一個(gè)函數(shù)庫(kù)來(lái)模擬underscore.js ● 深入探討ES8的新特性,如擴(kuò)展運(yùn)算符和Generator ● 遵循函數(shù)范式,創(chuàng)建一個(gè)工作方式類似于react-redux模式的庫(kù)

作者簡(jiǎn)介

  Anto Aravinth從事軟件行業(yè)已經(jīng)6年多了。他開(kāi)發(fā)了許多用新技術(shù)編寫的系統(tǒng)。Anto了解JavaScript的基礎(chǔ)知識(shí)及其工作方式,并培訓(xùn)了許多人。Anto在業(yè)余時(shí)間也做OSS,他喜歡打乒乓球。 Srikanth Machiraju作為開(kāi)發(fā)人員、架構(gòu)師、技術(shù)培訓(xùn)師和社區(qū)發(fā)言人,擁有超過(guò)10年的工作經(jīng)驗(yàn)。他目前在Microsoft Hyderabad擔(dān)任高級(jí)顧問(wèn),領(lǐng)導(dǎo)一個(gè)由100名開(kāi)發(fā)人員和質(zhì)量分析師組成的團(tuán)隊(duì),為石油行業(yè)的科技巨頭開(kāi)發(fā)一個(gè)先進(jìn)的云計(jì)算平臺(tái)。他的目標(biāo)是成為一名企業(yè)架構(gòu)師,能夠智能設(shè)計(jì)超大規(guī)模的現(xiàn)代應(yīng)用程序,不斷學(xué)習(xí)和分享使用前沿平臺(tái)和技術(shù)的現(xiàn)代應(yīng)用程序開(kāi)發(fā)策略。在加入Microsoft前,他曾在BrainScale擔(dān)任企業(yè)培訓(xùn)師和高級(jí)技術(shù)分析師,負(fù)責(zé)應(yīng)用程序設(shè)計(jì)、開(kāi)發(fā),并使用Azure進(jìn)行遷移。他是一名精通技術(shù)的開(kāi)發(fā)人員,熱衷于擁抱新技術(shù),并通過(guò)博客和社區(qū)分享他的學(xué)習(xí)歷程。他還撰寫了題為“Learning Windows Server Containers”(學(xué)習(xí)Windows服務(wù)器容器)和“Developing Bots with Microsoft Bot Framework”(用Microsoft機(jī)器人框架開(kāi)發(fā)機(jī)器人)的博客文章。

圖書(shū)目錄

第1章 函數(shù)式編程簡(jiǎn)介 1
1.1 什么是函數(shù)式編程?它為何重要 1
1.2 引用透明性 4
1.3 命令式、聲明式與抽象 5
1.4 函數(shù)式編程的好處 6
1.5 純函數(shù) 7
1.5.1 純函數(shù)生成可測(cè)試的代碼 7
1.5.2 合理的代碼 9
1.6 并發(fā)代碼 10
1.7 可緩存 11
1.8 管道與組合 12
1.9 純函數(shù)是數(shù)學(xué)函數(shù) 13
1.10 我們要構(gòu)建什么 14
1.11 JavaScript是函數(shù)式編程語(yǔ)言嗎 15
1.12 小結(jié) 15
第2章 JavaScript函數(shù)基礎(chǔ) 17
2.1 ECMAScript歷史 18
2.2 創(chuàng)建并執(zhí)行函數(shù) 18
2.2.1 第一個(gè)函數(shù) 19
2.2.2 嚴(yán)格模式 21
2.2.3 return語(yǔ)句是可選的 22
2.2.4 多語(yǔ)句函數(shù) 22
2.2.5 函數(shù)參數(shù) 23
2.2.6 ES5函數(shù)在ES6及更高版本中是有效的 24
2.3 設(shè)置項(xiàng)目 24
2.3.1 初始設(shè)置 24
2.3.2 用第一個(gè)函數(shù)式方法處理循環(huán)問(wèn)題 26
2.3.3 export要點(diǎn) 28
2.3.4 import要點(diǎn) 28
2.3.5 使用babel-node運(yùn)行代碼 29
2.3.6 在npm中創(chuàng)建腳本 29
2.3.7 從git上運(yùn)行源代碼 30
2.4 小結(jié) 31
第3章 高階函數(shù) 33
3.1 理解數(shù)據(jù) 34
3.1.1 理解JavaScript數(shù)據(jù)類型 34
3.1.2 存儲(chǔ)函數(shù) 35
3.1.3 傳遞函數(shù) 35
3.1.4 返回函數(shù) 37
3.2 抽象和高階函數(shù) 38
3.2.1 抽象的定義 38
3.2.2 通過(guò)高階函數(shù)實(shí)現(xiàn)抽象 39
3.3 實(shí)用的高階函數(shù) 42
3.3.1 every函數(shù) 43
3.3.2 some函數(shù) 44
3.3.3 sort函數(shù) 45
3.4 小結(jié) 49
第4章 閉包與高階函數(shù) 51
4.1 理解閉包 52
4.1.1 什么是閉包 52
4.1.2 記住閉包生成的位置 54
4.1.3 回顧sortBy函數(shù) 55
4.2 實(shí)用的高階函數(shù)(續(xù)) 56
4.2.1 tap函數(shù) 56
4.2.2 unary函數(shù) 57
4.2.3 once函數(shù) 59
4.2.4 memoized函數(shù) 60
4.2.5 assign函數(shù) 62
4.3 小結(jié) 64
第5章 數(shù)組的函數(shù)式編程 65
5.1 數(shù)組的函數(shù)式方法 66
5.1.1 map 66
5.1.2 filter 70
5.2 連接操作 71
5.3 reduce函數(shù) 76
5.4 zip數(shù)組 82
5.5 小結(jié) 86
第6章 柯里化與偏應(yīng)用 87
6.1 一些術(shù)語(yǔ) 88
6.1.1 一元函數(shù) 88
6.1.2 二元函數(shù) 88
6.1.3 變參函數(shù) 88
6.2 柯里化 90
6.2.1 柯里化用例 91
6.2.2 日志函數(shù):應(yīng)用柯里化 93
6.2.3 回顧柯里化 94
6.2.4 回顧日志函數(shù) 97
6.3 柯里化實(shí)戰(zhàn) 99
6.3.1 在數(shù)組內(nèi)容中查找數(shù)字 99
6.3.2 求數(shù)組的平方 100
6.4 數(shù)據(jù)流 100
6.4.1 偏應(yīng)用 101
6.4.2 實(shí)現(xiàn)偏函數(shù) 101
6.4.3 柯里化與偏應(yīng)用技術(shù) 104
6.5 小結(jié) 104
第7章 組合與管道 107
7.1 組合的概念 108
7.2 函數(shù)式組合 110
7.2.1 回顧map與filter 110
7.2.2 compose函數(shù) 112
7.3 應(yīng)用compose函數(shù) 113
7.3.1 引入curry與partial 114
7.3.2 組合多個(gè)函數(shù) 117
7.4 管道/序列 119
7.5 組合的優(yōu)勢(shì) 120
7.5.1 組合滿足結(jié)合律 120
7.5.2 管道操作符 121
7.5.3 使用tap函數(shù)調(diào)試 124
7.6 小結(jié) 124
第8章 函子 127
8.1 什么是函子 128
8.1.1 函子是容器 128
8.1.2 實(shí)現(xiàn)map方法 130
8.2 MayBe函子 132
8.2.1 實(shí)現(xiàn)MayBe函子 132
8.2.2 簡(jiǎn)單用例 133
8.2.3 真實(shí)用例 135
8.3 Either函子 140
8.3.1 實(shí)現(xiàn)Either函子 140
8.3.2 Reddit例子的Either版本 142
8.4 Pointed函子 145
8.5 小結(jié) 145
第9章 深入理解Monad 147
9.1 根據(jù)搜索詞條獲取Reddit評(píng)論 148
9.2 問(wèn)題描述 148
9.2.1 實(shí)現(xiàn)第一步 150
9.2.2 合并Reddit調(diào)用 153
9.2.3 多個(gè)map的問(wèn)題 157
9.3 通過(guò)join解決問(wèn)題 158
9.3.1 實(shí)現(xiàn)join 158
9.3.2 實(shí)現(xiàn)chain 161
9.3.3 什么是Monad 163
9.4 小結(jié) 164
第10章 使用Generator暫停、恢復(fù)和異步 165
10.1 異步代碼及其問(wèn)題 166
10.2 Generator 101 168
10.2.1 創(chuàng)建Generator 168
10.2.2 Generator的注意事項(xiàng) 169
10.2.3 yield關(guān)鍵字 170
10.2.4 Generator的done屬性 172
10.2.5 向Generator傳遞數(shù)據(jù) 174
10.3 使用Generator處理異步調(diào)用 176
10.3.1 一個(gè)簡(jiǎn)單的案例 176
10.3.2 一個(gè)真實(shí)的案例 181
10.4 ECMAScript 2017中的異步函數(shù) 185
10.4.1 Promise 185
10.4.2 await 186
10.4.3 async 186
10.4.4 鏈?zhǔn)交卣{(diào) 187
10.4.5 異步調(diào)用中的錯(cuò)誤處理 189
10.4.6 異步函數(shù)轉(zhuǎn)化為Generator 190
10.5 小結(jié) 192
第11章 構(gòu)建React-Like庫(kù) 193
11.1 不可變性 194
11.2 構(gòu)建簡(jiǎn)單的Redux庫(kù) 196
11.3 構(gòu)建一個(gè)類似于HyperApp的框架 201
11.3.1 虛擬DOM 202
11.3.2 JSX 203
11.3.3 JS Fiddle 204
11.3.4 createActions 208
11.3.5 render 209
11.3.6 patch 210
11.3.7 update 211
11.3.8 merge 212
11.3.9 remove 212
11.4 小結(jié) 214
第12章 測(cè)試與總結(jié) 215
12.1 介紹 216
12.2 測(cè)試的類型 217
12.3 BDD和TDD 218
12.4 JavaScript測(cè)試框架 219
12.4.1 使用Mocha進(jìn)行測(cè)試 220
12.4.2 使用Sinon進(jìn)行模擬 226
12.4.3 使用Jasmine進(jìn)行測(cè)試 229
12.5 代碼覆蓋率 231
12.6 linting 232
12.7 單元測(cè)試庫(kù)代碼 234
12.8 最后的想法 236
12.9 小結(jié) 237

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)