《JavaScript ES6 函数式编程入门经典》--推荐指数⭐⭐⭐

这本书比较基础认真看完再自己写点demo一个双休日就差不多,
总体来说看完还是有收获的,会激起一些你对函数编程的兴趣
主要目录如下:
第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.11 JavaScript是函数式编程语言吗 15
1.12 小结 16
第2章 JavaScript函数基础 17
2.1 ECMAScript历史 18
2.2 创建并执行函数 19
2.2.1 第一个函数 19
2.2.2 严格模式 21
2.2.3 return语句是可选的 22
2.2.4 多语句函数 22
2.2.5 函数参数 24
2.2.6 ES5函数在ES6中是有效的 24
2.3 设置项目 24
2.3.1 初始设置 24
2.3.2 用第一个函数式方法处理循环问题 26
2.3.3 export要点 28
2.3.4 import要点 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.1 every函数 42
3.3.2 some函数 44
3.3.3 sort函数 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.1 tap函数 54
4.2.2 unary函数 56
4.2.3 once函数 57
4.2.4 memoized函数 58
4.3 小结 60
第 5 章 数组的函数式编程 61
5.1 数组的函数式方法 62
5.1.1 map 62
5.1.2 filter 65
5.2 连接操作 67
5.3 reduce函数 71
5.4 zip数组 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 回顾curry 90
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与filter 104
7.2.2 compose函数 106
7.3 应用compose函数 106
7.3.1 引入curry与partial 108
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.2 MayBe函子 121
8.2.1 实现MayBe函子 122
8.2.2 简单用例 123
8.2.3 真实用例 125
8.3 Either函子 129
8.3.1 实现Either函子 130
8.3.2 reddit例子的Either版本 131
8.4 Pointed函子 134
8.5 小结 134
第9章 深入理解Monad 135
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 实现join 146
9.3.2 实现chain 148
9.4 小结 151
第10章 使用Generator 153
10.1 异步代码及其问题 154
10.2 Generator基础 156
10.2.1 创建Generator 156
10.2.2 Generator的注意事项 157
10.2.3 yield关键字 158
10.2.4 done属性 160
10.2.5 向Generator传递数据 162
10.3 使用Generator处理异步调用 164
10.3.1 一个简单的案例 164
10.3.2 一个真实的案例 169
10.4 小结 172
《JavaScript ES6 函数式编程入门经典》--推荐指数⭐⭐⭐的更多相关文章
- JavaScript ES6函数式编程(一):闭包与高阶函数
函数式编程的历史 函数的第一原则是要小,第二原则则是要更小 -- ROBERT C. MARTIN 解释一下上面那句话,就是我们常说的一个函数只做一件事,比如:将字符串首字母和尾字母都改成大写,我们此 ...
- JavaScript ES6函数式编程(二):柯里化、偏应用和组合、管道
上一篇介绍了闭包和高阶函数,这是函数式编程的基础核心.这一篇来看看高阶函数的实战场景. 首先强调两点: 注意闭包的生成位置,清楚作用域链,知道闭包生成后缓存了哪些变量 高阶函数思想:以变量作用域作为根 ...
- JavaScript ES6函数式编程(三):函子
前面二篇学习了函数式编程的基本概念和常见用法.今天,我们来学习函数式编程的最后一个概念--函子(Functor). 相信有一部分同学对这个概念很陌生,毕竟现在已经有很多成熟的轮子,基本能满足我们日常的 ...
- 翻译连载 | 第 9 章:递归(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇
原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...
- 翻译连载 | 第 11 章:融会贯通 -《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇
原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...
- 全本 | iKcamp翻译 | 《JavaScript 轻量级函数式编程》|《你不知道的JS》姊妹篇
原文地址:Functional-Light-JS 原文作者:Kyle Simpson - <You-Dont-Know-JS>作者 译者团队(排名不分先后):阿希.blueken.bruc ...
- 【mssql】SQL Server2012编程入门经典(第四版)(上) 读书笔记
数据库用了很久了,但好多东西很容易忘记,这次头脑发热想起来读一遍书,做点笔记! 从第五章开始参考:<SQL Server 2005 编程入门经典>学习笔记 一.RDBMS基础:SQL Se ...
- HTML5 & CSS3编程入门经典 ((美)Rob Larsen) pdf扫描版
HTML和CSS是构建网页所需要了解的两种核心编程语言,拉尔森编著的这本<HTML5&CSS3编程入门经典>详细介绍了这两种语言. <HTML5&CSS3编程入门经典 ...
- 《Web编程入门经典》
在我还不知道网页的基础结构的时候,我找过很多本介绍Web基础的书籍,其中这本<Web编程入门经典>,我认为是最好的. 这本书内容很全面.逻辑很严谨.结构很清晰.语言文字浅显易懂. 看这本书 ...
随机推荐
- 1、Docker部署及基础理论
1.Docker入门简介 Docker技术类似码头上看到的集装箱,最早集装箱没有出现的时候,码头上有许多搬运的工人在搬运货物,有了集装箱以后,搬运货物变得简单,通过集装箱的搬运模式更加单一.高效,将货 ...
- 批量unzip一大堆压缩文件进行文件查询的办法.
1. 公司里面开发提交的补丁存在问题. 需要找出来 哪些文件有问题 最简单的办法, 想将一对文件 转移到一个目录里面去 然后创建一个 shell 脚本执行解压缩的操作 for i in `ls *.g ...
- C#中 ref 关键字的认识和理解
之前接手老项目的时候有遇到一些的方法参数中使用了ref关键字加在传参的参数前面的情况.对于新手,这里介绍和讲解一下ref的用法和实际效果. CLR中默认所有方法的参数传递方式都是传值,也就是说不管你传 ...
- 3Python脚本在linux环境下头文件解释
#!/usr/bin/python到底是什么意思 有这句的,加上执行权限后,可以直接用 ./ 执行,不然会出错,因为找不到 python 解释器. #!/usr/bin/python 是告诉操作系统执 ...
- Ubuntu18.04下配置深度学习开发环境
在Ubuntu18.04下配置深度学习/机器学习开发环境 1.下载并安装Anaconda 下载地址:https://www.anaconda.com/distribution/#linux 安装步骤: ...
- sqlserver 批量修改数据库表主键名称为PK_表名
1.我们在创建sqlserver得数据表的主键的时候,有时会出现,后面加一串随机字符串的情况,如图所示: 2.如果你有强迫症的话,可以使用以下sql脚本进行修改,将主键的名称修改为PK_表名. --将 ...
- 洛谷P1331-搜索基础-什么是矩形?(我的方案)
原题链接:https://www.luogu.com.cn/problem/P1331 简单来说就是给出一个由‘#’和‘.‘组成的矩阵.需要识别存在几个矩形(被完全填充的).如果有矩形相互衔接则认为出 ...
- PPT、Word、Excel模板免费下载
本篇文章可能只有寥寥数字,但他的作用可能很大,可能帮助到很多朋友.本人喜欢搜集一些资源,也爱免费分享,因为好东西我藏不住,总感觉分享出来更快乐. 网址:https://www.bangongziyua ...
- #AcWing系列课程Level-2笔记——1. 快速排序算法
快速排序算法(冒泡排序算法的升级版) 编写快速排序,记住下面的思路,代码也就游刃有余了! 1.首先确定分界点:分界点设为x,可以取q[left],q[(left+right)>>2],q[ ...
- gulp常用插件之gulp-eslint使用
更多gulp常用插件使用请访问:gulp常用插件汇总 ** gulp-eslint**这是一个用于识别和报告在ECMAScript/JavaScript代码中找到的模式的Gulp插件.. 更多使用文档 ...