JavaScript函数式编程思想
¥
3
八五品
仅1件
作者潘俊
出版社人民邮电出版社
出版时间2019-01
版次1
装帧其他
货号平中三
上书时间2024-12-25
商品详情
- 品相描述:八五品
图书标准信息
-
作者
潘俊
-
出版社
人民邮电出版社
-
出版时间
2019-01
-
版次
1
-
ISBN
9787115499936
-
定价
59.00元
-
装帧
其他
-
开本
16开
-
纸张
胶版纸
-
页数
271页
-
字数
371千字
- 【内容简介】
-
本书主要介绍了函数式编程的基础理论、核心技术、典型特征和应用领域,以及它与面向对象编程的比较。本书既广泛介绍函数式编程的思想,也结合JavaScript的特点分析其应用和局限,注重从本质和内在逻辑的角度解释各个主题,并辅以相关的代码演示。对于函数式编程涉及的JavaScript语言本身的特性,以及与面向对象编程的比较,在书中也给予了重点讨论。
- 【作者简介】
-
潘俊,从事软件开发工作15年,CSDN博客专家。曾在IBM developerWorks上发表过两篇论文:《在 LotusScript 中为自定义对象模拟事件》和《JavaScript 的新领域——动态图片处理(SVG)》;在百度阅读上发表了两本电子书:《IT原来如此——写给文科生的IT书》和《罗辑思维不逻辑》;《Live软件开发面面谈》已由清华大学出版社出版。
- 【目录】
-
第 1章 名称1
1.1 名称绑定1
1.2 作用域3
1.2.1 包块作用域与就近声明5
1.2.2 静态作用域和动态作用域7
1.2.3 前向引用和提升9
1.3 闭包10
1.4 小结14
第 2章 类型系统15
2.1 类型是什么15
2.2 常用的数据类型16
2.2.1 整数16
2.2.2 浮点数16
2.2.3 布尔值17
2.2.4 字符17
2.2.5 元组、结构体、类17
2.2.6 函数19
2.2.7 数组、字符串、队列、堆栈、
列表20
2.2.8 结构体、映射22
2.2.9 深入复合类型23
2.3 强类型与弱类型24
2.4 名义类型与结构类型26
2.5 静态类型与动态类型27
2.5.1 静态类型27
2.5.2 动态类型30
2.6 多态性32
2.6.1 子类型多态性33
2.6.2 参数多态性35
2.7 JavaScript的类型系统38
2.7.1 undefined和null39
2.7.2 弱类型43
2.7.3 变成强类型47
2.8 鸭子类型与多态性52
2.9 小结53
第3章 lambda演算和函数54
3.1 命令式编程中函数的作用54
3.2 lambda演算57
3.2.1 定义57
3.2.2 记法58
3.2.3 化约58
3.2.4 算数59
3.2.5 逻辑运算61
3.2.6 函数式编程的特点61
3.3 JavaScript中的函数62
3.3.1 定义函数63
3.3.2 调用函数71
3.3.3 传递参数71
3.3.4 模块74
3.4 小结75
第4章 函数是一等值76
4.1 函数参数76
4.1.1 数组的迭代方法77
4.1.2 设计函数参数78
4.2 函数返回值81
4.2.1 判断数据类型82
4.2.2 日志83
4.2.3 读取对象属性85
4.3 高阶函数86
4.3.1 组合谓词函数87
4.3.2 改变函数参数数目89
4.3.3 检查参数类型91
4.3.4 记忆化94
4.4 小结98
第5章 部分应用和复合100
5.1 部分应用100
5.2 柯里化103
5.2.1 增强的柯里化106
5.2.2 从右向左柯里化108
5.2.3 进一步增强的柯里化109
5.2.4 柯里化的性能成本111
5.2.5 应用柯里化的方式113
5.2.6 参数的顺序115
5.2.7 柯里化与高阶函数115
5.3 复合118
5.3.1 管道与数据流122
5.3.2 函数类型与柯里化124
5.4 一切都是函数126
5.4.1 操作符的函数化127
5.4.2 方法的函数化132
5.4.3 控制流语句的函数化138
5.5 性能与可读性141
5.6 小结142
第6章 副作用和不变性144
6.1 副作用144
6.2 纯函数145
6.2.1 外部变量147
6.2.2 实现148
6.2.3 函数内部的副作用148
6.2.4 闭包151
6.3 不变性152
6.3.1 哲学上的不变性与身份152
6.3.2 简单类型与复合类型153
6.3.3 值类型与引用类型154
6.3.4 可变类型与不可变类型155
6.3.5 可变数据类型的不足之处156
6.3.6 克隆与冻结158
6.3.7 不可变的数据结构163
6.3.8 不可变的映射与数组167
6.3.9 不可变类型的其他好处170
6.4 小结171
第7章 递归172
7.1 调用自身173
7.1.1 递归的思路176
7.1.2 带累积参数的递归函数177
7.2 递归的数据结构180
7.2.1 构建列表180
7.2.2 树184
7.3 递归与迭代186
7.3.1 名称186
7.3.2 理念与对比186
7.3.3 迭代协议189
7.3.4 递归协议192
7.3.5 搜索树195
7.4 尾部递归198
7.4.1 调用堆栈198
7.4.2 尾部调用优化200
7.4.3 怎样算是尾部调用201
7.4.4 尾部递归204
7.5 递归的效率205
7.6 小结209
第8章 列表211
8.1 处理列表211
8.1.1 函数的三种写法211
8.1.2 处理列表的高阶函数213
8.2 函数式编程的列表接口218
8.2.1 没有副作用的方法219
8.2.2 有副作用的方法220
8.2.3 列表接口中的其他函数222
8.3 小结225
第9章 从面向对象到函数式编程226
9.1 面向对象编程的特点226
9.1.1 封装性227
9.1.2 继承性227
9.1.3 多态性228
9.2 JavaScript面向对象编程232
9.2.1 创建和修改单个对象233
9.2.2 克隆和复制属性234
9.2.3 原型234
9.2.4 建构函数235
9.2.5 建构函数与类型继承237
9.2.6 原型与类型继承242
9.2.7 Proxy与对象继承245
9.2.8 Mixin248
9.2.9 工厂函数251
9.3 函数式编程的视角255
9.3.1 不可变的对象256
9.3.2 评判面向对象编程257
9.4 方法链与复合函数260
9.4.1 方法链260
9.4.2 延迟的方法链264
9.4.3 复合函数265
9.4.4 函数式的SQL266
9.5 小结271
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价