JavaScript忍者秘籍 高清PDF电子书下载

内容简介

JavaScript语言非常重要,相关的技术图书也很多,但没有任何一本书对JavaScript语言的重要部分(函数、闭包和原型)进行深入、全面的介绍,也没有任何一本书讲述跨浏览器代码的编写。《JavaScript忍者秘籍》是jQuery库创始人编写的一本深入剖析JavaScript语言的书。
本书共分四个部分,从准入训练、见习训练、忍者训练和火影训练四个层次讲述了逐步成为JavaScript高手的全过程。全书从高级Web应用程序开发者所面临的挑战谈起,由浅入深地覆盖了测试和测试工具、函数、闭包、对象、正则表达式、定时器、运行时代码求值、with语句、跨浏览器问题、元素的特性和属性、事件处理、DOM以及CSS选择器等众多核心话题;将严谨的理论讲解和实用的代码示例相结合,引导读者更加深入地了解JavaScript的神奇,充分展示了JavaScript语言的各种特性。

相关截图

JavaScript忍者秘籍

目录

第一部分 准入训练
第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 文档就绪事件(documentready) 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 文本内容 333
14.4.1 设置文本 334
14.4.2 获取文本 335
14.5 总结 336
第15章 CSS选择器引擎 337
15.1 W3C Selectors API 338
15.2 利用XPath查找元素 341
15.3 纯DOM实现 342
15.3.1 对选择器进行解析 345
15.3.2 查找元素 346
15.3.3 过滤结果集 347
15.3.4 递归和合并 347
15.3.5 自下而上的选择器引用 348
15.4 总结 350

打赏
下载 积分 (-50) 吐槽 (13)
×
加载中,请稍候…

您需要 登录 后才能发表评论。

avatar

- 评论

  • 加载中,请稍候…
我要吐槽