JavaScript忍者秘籍

978-7-115-40194-6
作者: 【美】John Resig(莱西格)Bear Bibeault(贝比奥特)
译者: 徐涛
编辑: 陈冀康

图书目录:

目录

第 一部分 准入训练

第 1章 进入忍者世界 3

1.1 即将探索的JavaScript

库 4

1.2 理解JavaScript语言 5

1.3 跨浏览器注意事项 6

1.4 当前**佳实践 9

1.4.1 当前**佳实践:测试 9

1.4.2 当前**佳实践:性能

分析 9

1.5 总结 10

第 2章 利用测试和调试武装

自己 11

2.1 调试代码 12

2.1.1 日志记录 12

2.1.2 断点 14

2.2 测试用例生成 15

2.3 测试框架 17

2.3.1 Qunit 19

2.3.2 YUI Test 19

2.3.3 JsUnit 19

2.3.4 新出的单元测试框架 20

2.4 测试套件基础知识 20

2.4.1 断言 20

2.4.2 测试组 21

2.4.3 异步测试 23

2.5 总结 25

第 二部分 见习训练

第3章 函数是根基 29

3.1 函数的独特之处? 30

3.1.1 JavaScript的函数式特性

为何如此重要? 31

3.1.2 使用比较器进行排序 35

3.2 函数声明 37

3.2.1 作用域和函数 40

3.3 函数调用 44

3.3.1 从参数到函数形参 45

3.3.2 作为函数进行调用 46

3.3.3 作为方法进行调用 47

3.3.4 作为构造器进行调用 49

3.3.5 使用apply()和call()方法进行调用 52

3.4 总结 56

第4章 挥舞函数 57

4.1 匿名函数 57

4.2 递归 59

4.2.1 普通命名函数中的

递归 60

4.2.2 方法中的递归 61

4.2.3 引用的丢失问题 62

4.2.4 内联命名函数 64

4.2.5 callee属性 66

4.3 将函数视为对象 67

4.3.1 函数存储 67

4.3.2 自记忆函数 69

4.3.3 伪造数组方法 71

4.4 可变长度的参数列表 73

4.4.1 使用apply()支持可变

参数 73

4.4.2 函数重载 74

4.5 函数判断 82

4.6 总结 83

第5章 闭包 85

5.1 闭包是如何工作的 86

5.2 使用闭包 90

5.2.1 私有变量 90

5.2.2 回调(Callback)与

计时器(timer) 92

5.3 绑定函数上下文 95

5.4 偏应用函数 98

5.5 函数重载 101

5.5.1 缓存记忆 101

5.5.2 函数包装 104

5.6 即时函数 106

5.6.1 临时作用域和私有

变量 107

5.6.2 循环 111

5.6.3 类库包装 112

5.7 总结 113

第6章 原型与面向对象 115

6.1 实例化和原型 116

6.1.1 对象实例化 116

6.1.2 通过构造器判断对象

类型 123

6.1.3 继承与原型链 124

6.1.4 HTML DOM原型 128

6.2 疑难陷阱 130

6.2.1 扩展对象 130

6.2.2 扩展数字 132

6.2.3 子类化原生对象 133

6.2.4 实例化问题 134

6.3 编写类风格的代码 138

6.3.1 检测函数是否可

序列化 141

6.3.2 子类的实例化 142

6.3.3 保留父级方法 142

6.4 总结 144

第7章 正则表达式 147

7.1 为什么正则表达式

很牛 148

7.2 正则表达式进阶 149

7.2.1 正则表达式解释 149

7.2.2 术语与操作符 150

7.3 编译正则表达式 154

7.4 捕获匹配的片段 156

7.4.1 执行简单的捕获 157

7.4.2 用全局表达式进行

匹配 158

7.4.3 捕获的引用 159

7.4.4 没有捕获的分组 160

7.5 利用函数进行替换 161

7.6 利用正则表达式解决常见

问题 164

7.6.1 修剪字符串 164

7.6.2 匹配换行符 166

7.6.3 Unicode 166

7.6.4 转义字符 167

7.7 总结 168

第8章 驯服线程和定时器 169

8.1 定时器和线程是如何

工作的 170

8.1.1 设置和清除定时器 170

8.1.2 执行线程中的定时器

执行 170

8.1.3 Timeout与Interval之间的区别 172

8.2 定时器延迟的**小化及其

可靠性 173

8.3 处理昂贵的计算

过程 176

8.4 中央定时器控制 179

8.5 异步测试 182

8.6 总结 183

第三部分 忍者训练

第9章 忍者点金术:运行时代码

求值 187

9.1 代码求值机制 187

9.1.1 用eval()方法进行

求值 188

9.1.2 用函数构造器进行

求值 191

9.1.3 用定时器进行求值 191

9.1.4 全局作用域内的求值

操作 192

9.1.5 安全的代码求值 194

9.2 函数反编译 195

9.3 代码求值实战 198

9.3.1 JSON转化 198

9.3.2 导入有命名空间的

代码 199

9.3.3 JavaScript压缩和混淆 200

9.3.4 动态重写代码 202

9.3.5 面向切面的脚本标签 202

9.3.6 元语言和领域特定

语言 204

9.4 总结 207

第 10章 With语句 209

10.1 with是怎么回事? 210

10.1.1 在with作用域内引用

属性 210

10.1.2 在with作用域内进行

赋值 211

10.1.3 性能方面的注意

事项 213

10.2 真实示例 215

10.3 导入有命名空间的

代码 217

10.4 测试 217

10.5 使用with进行

模板化 218

10.6 总结 220

第 11章 开发跨浏览器

策略 223

11.1 选择要支持的

浏览器 223

11.2 五大开发关注点 225

11.2.1 浏览器Bug和浏览器

差异 226

11.2.2 浏览器bug修复 226

11.2.3 与外部代码(标记)一起

共存 228

11.2.4 缺失的功能 232

11.2.5 回归 233

11.3 实现策略 235

11.3.1 安全的跨浏览器

修复 235

11.3.2 对象检测 236

11.3.3 特征仿真 238

11.3.4 不可检测的浏览器

问题 241

11.4 减少假设 243

11.5 总结 244

第 12章 洞悉特性、属性和

样式 245

12.1 DOM特性和DOM

属性 246

12.1.1 跨浏览器命名 248

12.1.2 命名限制 248

12.1.3 XML与HTML之间的

差异 249

12.1.4 自定义特性的行为 250

12.1.5 性能注事事项 250

12.2 跨浏览器的attribute

问题 254

12.2.1 DOM中的id/name

膨胀 254

12.2.2 URL规范化 256

12.2.3 style特性 257

12.2.4 type特性 257

12.2.5 tab index问题 258

12.2.6 节点名称 259

12.3 令人头疼的样式

特性 259

12.3.1 样式在何处? 260

12.3.2 样式属性命名 262

12.3.3 float样式属性 263

12.3.4 像素值的转换过程 263

12.3.5 测量元素的高度和

宽度 264

12.3.6 通过opacity看

透明度 268

12.3.7 颜色属性 270

12.4 获取计算样式 273

12.5 总结 276

第四部分 火影训练

第 13章 不老事件 281

13.1 绑定和解绑事件处理

程序 282

13.2 Event对象 286

13.3 处理程序的管理 289

13.3.1 集中存储相关信息 289

13.3.2 管理事件处理程序 292

13.4 事件触发 300

13.4.1 自定义事件 302

13.5 冒泡与委托 306

13.5.1 将事件委托给祖先

元素 307

13.5.2 修复浏览器的不足 307

13.6 文档就绪事件(document

ready) 316

13.7 总结 318

第 14章 DOM操作 321

14.1 向DOM中注入

HTML 322

14.1.1 将HTML转换成

DOM 323

14.1.2 将DOM插入到

文档中 326

14.1.3 脚本执行 328

14.2 克隆元素 330

14.3 删除元素 331

14.4 文本内容

详情

本书分设计、构建和维护3个阶段介绍全新的JavaScript开发技术。首先让读者建立牢固的基本知识,然后讲解如何构建JavaScript库,解释了构建JavaScript库需要应付和解决的问题的解决方案和开发策略,还介绍了保证代码运行良好的维护技术。

图书摘要

相关图书

自制编程语言
自制编程语言
Python和NLTK自然语言处理
Python和NLTK自然语言处理
scikit-learn机器学习(第2版)
scikit-learn机器学习(第2版)
C++编程自学宝典
C++编程自学宝典
数据科学实战手册(第2版)
数据科学实战手册(第2版)
Scala实用指南
Scala实用指南

相关文章

相关课程