JavaScriptDOM编程艺术(第2版)+设计模式与开发实践+函数式编程指南+高级程序设计pdf下载

JavaScriptDOM编程艺术(第2版)+设计模式与开发实践+函数式编程指南+高级程序设计百度网盘pdf下载

作者:
简介:JavaScriptDOM编程艺术(第2版)+设计模式与开发实践+函数式编程指南+高级程序设计
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

商品基本信息,请以下列介绍为准
图书名称:

 

《DOM编程艺术(第2版)》   9787115249999  定价¥49

《设计模式与开发实践》    9787115388889   定价¥59

《函数式编程指南》           9787115462046   定价¥59

《高级程序设计(第3版)》   9787115275790   定价¥99

 

定价: 266
出版社: 人民邮电出版社



  目录

《DOM编程艺术(第2版)》
第1章 简史
1.1 的起源
1.2 DOM
1.3 浏览器战争
1.3.1 DHTML
1.3.2 浏览器之间的冲突
1.4 制定标准
1.4.1 浏览器以外的考虑
1.4.2 浏览器战争的结局
1.4.3 崭新的起点
1.5 小结
第2章 语法
2.1 准备工作
2.2 语法
2.2.1 语句
2.2.2 注释
2.2.3 变量
2.2.4 数据类型
2.2.5 数组
2.2.6 对象
2.3 操作
2.4 条件语句
2.4.1 比较操作符
2.4.2 逻辑操作符
2.5 循环语句
2.5.1 while循环
2.5.2 for循环
2.6 函数
2.7 对象
2.7.1 内建对象
2.7.2 宿主对象
2.8 小结
第3章 DOM
3.1 文档:DOM中的“D”
3.2 对象:DOM中的“O”
3.3 模型:DOM中的“M”
3.4 节点
3.4.1 元素节点
3.4.2 文本节点
3.4.3 属性节点
3.4.4 CSS
3.4.5 获取元素
3.4.6 盘点知识点
3.5 获取和设置属性
3.5.1 getAttribute
3.5.2 setAttribute
3.6 小结
第4章 案例研究:图片库
4.1 标记
4.2
4.2.1 非DOM解决方案
4.2.2 .终的函数代码清单
4.3 应用这个函数
4.4 对这个函数进行扩展
4.4.1 childNodes属性
4.4.2 nodeType属性
4.4.3 在标记里增加一段描述
4.4.4 用改变这段描述
4.4.5 nodeValue属性
4.4.6 firstChild和lastChild属性
4.4.7 利用nodeValue属性刷新这段描述
4.5 小结
第5章 .佳实践
5.1 过去的错误
5.1.1 不要怪罪
5.1.2 Flash的遭遇
5.1.3 质疑一切
5.2 平稳退化
5.2.1 “”伪协议
5.2.2 内嵌的事件处理函数
5.2.3 谁关心这个
5.3 向CSS学习
5.3.1 结构与样式的分离
5.3.2 渐进增强
5.4 分离
5.5 向后兼容
5.5.1 对象检测
5.5.2 浏览器嗅探技术
5.6 性能考虑
5.6.1 尽量少访问DOM和尽量减少标记
5.6.2 合并和放置脚本
5.6.3 压缩脚本
5.7 小结
第6章 案例研究:图片库改进版
6.1 快速回顾
6.2 它支持平稳退化吗
6.3 它的与HTML标记是分离的吗
6.3.1 添加事件处理函数
6.3.2 共享onload事件
6.4 不要做太多的假设
6.5 优化
6.6 键盘访问
6.7 把与CSS结合起来
6.8 DOM Core和HTML-DOM
6.9 小结
第7章 动态创建标记
7.1 一些传统方法
7.1.1 document.write
7.1.2 innerHTML属性
7.2 DOM方法
7.2.1 createElement方法
7.2.2 appendChild方法
7.2.3 createTextNode方法
7.2.4 一个更复杂的组合
7.3 重回图片库
7.3.1 在已有元素前插入一个新元素
7.3.2 在现有方法后插入一个新元素
7.3.3 图片库二次改进版
7.4 Ajax
7.4.1 XMLHttpRequest对象
7.4.2 渐进增强与Ajax
7.4.3 Hijax
7.5 小结
第8章 充实文档的内容
8.1 不应该做什么
8.2 把“不可见”变成“可见”
8.3 内容
8.3.1 选用HTML、XHTML还是HTML5
8.3.2 CSS
8.3.3
8.4 显示“缩略语列表”
8.4.1 编写displayAbbreviations函数
8.4.2 创建标记
8.4.3 一个浏览器“地雷”
8.5 显示“文献来源链接表”
8.6 显示“快捷键清单”
8.7 检索和添加信息
8.8 小结
第9章 CSS-DOM
9.1 三位一体的网页
9.1.1 结构层
9.1.2 表示层
9.1.3 行为层
9.1.4 分离
9.2 style属性
9.2.1 获取样式
9.2.2 设置样式
9.3 何时该用DOM脚本设置样式
9.3.1 根据元素在节点树里的位置来设置样式
9.3.2 根据某种条件反复设置某种样式
9.3.3 响应事件
9.4 className属性
9.5 小结
第10章 用实现动画效果
10.1 动画基础知识
10.1.1 位置
10.1.2 时间
10.1.3 时间递增量
10.1.4 抽象
10.2 实用的动画
10.2.1 提出问题
10.2.2 解决问题
10.2.3 CSS
10.2.4
10.2.5 变量作用域问题
10.2.6 改进动画效果
10.2.7 添加安全检查
10.2.8 生成HTML标记
10.3 小结
第11章 HTML5
11.1 HTML5简介
11.2 来自朋友的忠告
11.3 几个示例
11.3.1 Canvas
11.3.2 音频和视频
11.3.3 表单
11.4 HTML5还有其他特性吗
11.5 小结
第12章 综合示例
12.1 项目简介
12.1.1 原始资料
12.1.2 站点结构
12.1.3 页面结构
12.2 设计
12.3 CSS
12.3.1 颜色
12.3.2 布局
12.3.3 版式
12.4 标记
12.5
12.5.1 页面突出显示
12.5.2 幻灯片
12.5.3 内部导航
12.5.4 图片库
12.5.5 增强表格
12.5.6 增强表单
12.5.7 压缩代码
12.6 小结
附录 库
《设计模式与开发实践》

第一部分基础知识
第1章 面向对象的
1.1动态类型语言和鸭子类型
1.2多态
1.3封装
1.4原型模式和基于原型继承的对象系统
第2章 this、call和apply
2.1this
2.2call和apply
第3章 闭包和高阶函数
3.1闭包
3.2高阶函数
3.3小结
第二部分设计模式
第4章 单例模式
4.1实现单例模式
4.2透明的单例模式
4.3用代理实现单例模式
4.4中的单例模式
4.5惰性单例
4.6通用的惰性单例
4.7小结
第5章 策略模式
5.1使用策略模式计算奖金
5.2版本的策略模式
5.3多态在策略模式中的体现
5.4使用策略模式实现缓动动画
5.5更广义的“算法”
5.6表单校验
5.7策略模式的优缺点
5.8一等函数对象与策略模式
5.9小结
第6章 代理模式
6.1第一个例子——小明追MM的故事
6.2保护代理和虚拟代理
6.3虚拟代理实现图片预加载
6.4代理的意义
6.5代理和本体接口的一致性
6.6虚拟代理合并HTTP请求
6.7虚拟代理在惰性加载中的应用
6.8缓存代理
6.9用高阶函数动态创建代理
6.10其他代理模式
6.11小结
第7章 迭代器模式
7.1jQuery中的迭代器
7.2实现自己的迭代器
7.3内部迭代器和外部迭代器
7.4迭代类数组对象和字面量对象
7.5倒序迭代器
7.6中止迭代器
7.7迭代器模式的应用举例
7.8小结
第8章 发布—订阅模式
8.1现实中的发布—订阅模式
8.2发布—订阅模式的作用
8.3DOM事件
8.4自定义事件
8.5发布—订阅模式的通用实现
8.6取消订阅的事件
8.7真实的例子——网站登录
8.8全局的发布—订阅对象
8.9模块间通信
8.10必须先订阅再发布吗
8.11全局事件的命名冲突
8.12实现发布—订阅模式的便利性
8.13小结
第9章 命令模式
9.1命令模式的用途
9.2命令模式的例子——菜单程序
9.3中的命令模式
9.4撤销命令
9.5撤消和重做
9.6命令队列
9.7宏命令
9.8智能命令与傻瓜命令
9.9小结
第10章 组合模式
10.1回顾宏命令
10.2组合模式的用途
10.3请求在树中传递的过程
10.4更强大的宏命令
10.5抽象类在组合模式中的作用
10.6透明性带来的安全问题
10.7组合模式的例子——扫描文件夹
10.8一些值得注意的地方
10.9引用父对象
10.10何时使用组合模式
10.11小结
第11章 模板方法模式
11.1模板方法模式的定义和组成
11.2第一个例子——CoffeeorTea
11.3抽象类
11.4模板方法模式的使用场景
11.5钩子方法
11.6好莱坞原则
11.7真的需要“继承”吗
11.8小结
第12章 享元模式
12.1初识享元模式
12.2内部状态与外部状态
12.3享元模式的通用结构
12.4文件上传的例子
12.5享元模式的适用性
12.6再谈内部状态和外部状态
12.7对象池
12.8小结
第13章 职责链模式
13.1现实中的职责链模式
13.2实际开发中的职责链模式
13.3用职责链模式重构代码
13.4灵活可拆分的职责链节点
13.5异步的职责链
13.6职责链模式的优缺点
13.7用AOP实现职责链
13.8用职责链模式获取文件上传对象
13.9小结
第14章 中介者模式
14.1现实中的中介者
14.2中介者模式的例子——泡泡堂游戏
14.3中介者模式的例子——购买商品
14.4小结
第15章 装饰者模式
15.1模拟传统面向对象语言的装饰者模式
15.2装饰者也是包装器
15.3回到的装饰者
15.4装饰函数
15.5用AOP装饰函数
15.6AOP的应用实例
15.7装饰者模式和代理模式
15.8小结
第16章 状态模式
16.1初识状态模式
16.2状态模式的定义
16.3状态模式的通用结构
16.4缺少抽象类的变通方式
16.5另一个状态模式示例——文件上传
16.6状态模式的优缺点
16.7状态模式中的性能优化点
16.8状态模式和策略模式的关系
16.9版本的状态机
16.10表驱动的有限状态机
16.11实际项目中的其他状态机
16.12小结
第17章 适配器模式
17.1现实中的适配器
17.2适配器模式的应用
17.3小结
第三部分设计原则和编程技巧
第18章 单一职责原则
18.1设计模式中的SRP原则
18.2何时应该分离职责
18.3违反SRP原则
18.4SRP原则的优缺点
第19章 .少知识原则
19.1减少对象之间的联系
19.2设计模式中的LKP原则
19.3封装在LKP原则中的体现
第20章 开放-封闭原则
20.1扩展window.onload函数
20.2开放和封闭
20.3用对象的多态性消除条件分支
20.4找出变化的地方
20.5设计模式中的开放—封闭原则
20.6开放—封闭原则的相对性
20.7接受第一次愚弄
第21章 接口和面向接口编程
21.1回到Java的抽象类
21.2interface
21.3语言是否需要抽象类和interface
21.4用鸭子类型进行接口检查
21.5用TypeScript编写基于interface的命令模式
第22章 代码重构
22.1提炼函数
22.2合并重复的条件片段
22.3把条件分支语句提炼成函数
22.4合理使用循环
22.5提前让函数退出代替嵌套条件分支
22.6传递对象参数代替过长的参数列表
22.7尽量减少参数数量
22.8少用三目运算符
22.9合理使用链式调用
22.10分解大型类
22.11用return退出多重循环
参考文献
《函数式编程指南》

第 一部分 函数式思想



第 1章 走近函数式 3

1.1 函数式编程有用吗? 4

1.2 什么是函数式编程? 5

1.2.1 函数式编程是声明式

编程 7

1.2.2 副作用带来的问题和

纯函数 8

1.2.3 引用透明和可置换性 12

1.2.4 存储不可变数据 13

1.3 函数式编程的优点 14

1.3.1 鼓励复杂任务的分解 15

1.3.2 使用流式链来处理数据 16

1.3.3 复杂异步应用中的响应 18

1.4 总结 19

第 2章 高阶 21

2.1 为什么要使用

? 22

2.2 函数式与面向对象的程序设计 22

2.2.1 管理对象的

状态 28

2.2.2 将对象视为数值 29

2.2.3 深冻结可变部分 31

2.2.4 使用Lenses定位并修改对象图 33

2.3 函数 34

2.3.1 一等函数 35

2.3.2 高阶函数 36

2.3.3 函数调用的类型 38

2.3.4 函数方法 39

2.4 闭包和作用域 40

2.4.1 全局作用域 42

2.4.2 函数作用域 43

2.4.3 伪块作用域 44

2.4.4 闭包的实际应用 45

2.5 总结 48



第二部分 函数式基础



第3章 轻数据结构,重操作 51

3.1 理解程序的控制流 52

3.2 链接方法 53

3.3 函数链 54

3.3.1 了解 lambda 表达式 54

3.3.2 用_.map做数据变换 56

3.3.3 用_.reduce 收集结果 57

3.3.4 用_.filter 删除不需要的

元素 61

3.4 代码推理 62

3.4.1 声明式惰性计算函数链 63

3.4.2 类SQL的数据:函数即

数据 66

3.5 学会递归地思考 68

3.5.1 什么是递归? 68

3.5.2 学会递归地思考 68

3.5.3 递归定义的数据结构 70

3.6 总结 73

第4章 模块化且可重用的

代码 75

4.1 方法链与函数管道的

比较 76

4.1.1 方法链接 77

4.1.2 函数的管道化 78

4.2 管道函数的兼容条件 78

4.2.1 函数的类型兼容条件 78

4.2.2 函数与元数:元组的

应用 79

4.3 柯里化的函数求值 82

4.3.1 仿真函数工厂 85

4.3.2 创建可重用的函数模板 86

4.4 部分应用和函数绑定 87

4.4.1 核心语言扩展 89

4.4.2 延迟函数绑定 89

4.5 组合函数管道 90

4.5.1 HTML部件的组合 91

4.5.2 函数组合:描述与求值

分离 92

4.5.3 函数式库的组合 95

4.5.4 应对纯的代码和不纯的

代码 96

4.5.5 point-free编程 98

4.6 使用函数组合子来管理

程序的控制流 99

4.6.1 identity(I-combinator) 99

4.6.2 tap(K-组合子) 99

4.6.3 alt(OR-组合子) 100

4.6.4 seq(S-组合子) 101

4.6.5 fork(join)组合子 101

4.7 总结 102

第5章 针对复杂应用的设计

模式 103

5.1 命令式错误处理的

不足 104

5.1.1 用try-catch处理错误 104

5.1.2 函数式程序不应抛出

异常 105

5.1.3 空值(null)检查问题 106

5.2 一种更好的解决方案

——Functor 106

5.2.1 包裹不安全的值 107

5.2.2 Functor定义 108

5.3 使用Monad函数式地处理错误 111

5.3.1 Monad:从控制流到

数据流 111

5.3.2 使用Maybe Monad和Either Monad来处理异常 115

5.3.3 使用IO Monad与外部资源交互 123

5.4 Monadic链式调用及

组合 126

5.5 总结 131



第三部分 函数式技能提升



第6章 坚不可摧的代码 135

6.1 函数式编程对单元测试的影响 136

6.2 测试命令式代码的

困难 137

6.2.1 难以识别和分解任务 137

6.2.2 对共享资源的依赖会导致结果不一致 138

6.2.3 按预定义顺序执行 139

6.3 测试函数式代码 140

6.3.1 把函数当作黑盒子 140

6.3.2 专注于业务逻辑,而不是控制流 141

6.3.3 使用Monadic式从不纯的代码中分离出纯函数 142

6.3.4 mock外部依赖 144

6.4 通过属性测试制定规格

说明 146

6.5 通过代码覆盖率衡量有

效性 152

6.5.1 衡量函数式代码测试的

有效性 152

6.5.2 衡量函数式代码的

复杂性 155

6.6 总结 158

第7章 函数式优化 159

7.1 函数执行机制 160

7.1.1 柯里化与函数上下文

堆栈 161

7.1.2 递归的弱点 164

7.2 使用惰性求值推迟

执行 165

7.2.1 使用函数式组合子避免重复计算 167

7.2.2 利用shortcut fusion 167

7.3 实现需要时调用的

策略 168

7.3.1 理解记忆化 169

7.3.2 记忆化计算密集型

函数 169

7.3.3 有效利用柯里化与

记忆化 172

7.3.4 通过分解来实现更大程度

的记忆化 173

7.3.5 记忆化递归调用 173

7.4 递归和尾递归优化 175

7.5 总结 178

第8章 管理异步事件以及

数据 181

8.1 异步代码的挑战 182

8.1.1 在函数之间创建时间依赖

关系 182

8.1.2 陷入回调金字塔 183

8.1.3 使用持续传递式样 186

8.2 一等公民Promise 188

8.2.1 链接将来的方法 190

8.2.2 组合同步和异步行为 195

8.3 生成惰性数据 197

8.3.1 生成器与递归 199

8.3.2 迭代器协议 200

8.4 使用RxJS进行函数式和响应式编程 202

8.4.1 数据作为Observable

序列 202

8.4.2 函数式编程与响应式

编程 203

8.4.3 RxJS和Promise 205

8.5 总结 206

附录 本书中使用的

库 207

函数式库 207

使用的其他库 208
《高级程序设计(第3版)》

第1章  简介
  1.1  简史
  1.2  实现
    1.2.1  ECMAScript
    1.2.2  文档对象模型(DOM)
    1.2.3  浏览器对象模型(BOM)
  1.3  版本
  1.4  小结
第2章  在HTML中使用
  2.1   script 元素
    2.1.1  标签的位置
    2.1.2  延迟脚本
    2.1.3  异步脚本
    2.1.4  在XHTML申的用法
    2.1.5  不推荐使用的语法
  2.2  嵌入代码与外部文件
  2.3  文档模式
  2.4  noscript  元素
  2.5  小结
第3章  基本概念
  3.1  语法
    3.1.1  区分大小写
    3.1.2  标识符
    3.1.3  注释
    3.1.4  严格模式
    3.1.5  语句
  3.2关键字和保留字
  3.3  变量
  3.4  数据类型
    3.4.1  typeof操作符
    3.4.2  Undefined类型
    3.4.3  Null类型
    3.4.4  Boolean类型
    3.4.5  Number类型
    3.4.6  String类型
    3.4.7  0bj ect类型
  3.5  操作符
    3.5.1  一元操作符
    3.5.2  位操作符
    3.5.3  布尔操作符
    3.5.4  乘性操作符
    3.5.5  加性操作符
    3.5.6  关系操作符
    3.5.7  相等操作符
    3.5.8  条件操作符
    3.5.9赋值操作符
    3.5.10  逗号操作符
  3.6  语句
    3.6.1  if语句
    3.6.2  do—while语句
    3.6.3  while语句
    3.6.4  for语句
    3.6.5  for—in语句
    3.6.6  label语句
    3.6.7  break和continue语句
    3.6.8  with语句
    3.6.9  switch语句
  3.7  函数
    3.7.1  理解参数
    3.7.2  没有重载
  3.8  小结
第4章  变量、作用域和内存问题
第5章  引用类型
第6章  面向对象的程序设计
第7章  函数表达式
第8章  BOM
第9章  客户端检测
第10章  DOM
第11章  DOM扩展
第12章  DOM2和DOM3
第13章  事件
第14章  表单脚本
第15章  使用Canvas绘图
第16章  HTML5脚本编程
第17章  错误处理与调试
第18章  GN xml
第19章  E4X
第20章  JSON
第21章  Ajax与Comet
第22章  **技巧
第23章  离线应用与客户端存储
第24章  .佳实践
第25章  新兴的API
附录A  ECMAScript Harmony
附录B  严格模式
附录C  Java Script库
附录D  Java Script工具