内容简介
第一部分 准入训练
第1章 进入忍者世界
1.1即将探索的JavaScript库
1.2理解JavaScript语言
1.3跨浏览器注意事项
1.4当前最佳实践
1.4.1当前最佳实践:测试
1.4.2当前最佳实践:性能分析
1.5总结
第2章 利用测试和调试武装自己
2.1调试代码
2.1.1日志记录
2.1.2断点
2.2测试用例生成
2.3测试框架
2.3.1 QUnit
2.3.2 YUI Test
2.3.3 JsUnit
2.3.4新出的单元测试框架
2.4测试套件基础知识
2.4.1断言
2.4.2 测试组
2.4.3异步测试
2.5总结
第二部分 见习训练
第3章 函数是根基
3.1函数的独特之处
3.1.1 JavaScript的函数式特性为何如此重要
3.1.2使用比较器进行排序
3.2 函数声明
3.3函数调用
3.3.1从参数到函数形参
3.3.2作为函数进行调用
3.3.3作为方法进行调用
3.3.4作为构造器进行调用
3.3.5使用apply()和call()方法进行调用
3.4总结
第4章 挥舞函数
4.1匿名函数
4.2递归
4.2.1普通命名函数中的递归
4.2.2方法中的递归
4.2.3引用的丢失问题
4.2.4内联命名函数
4.2.5 callee属性
4.3将函数视为对象
4.3.1函数存储
4.3.2自记忆函数
4.3.3伪造数组方法
4.4可变长度的参数列表
4.4.1使用apply()支持可变参数
4.4.2 函数重载
4.5 函数判断
4.6总结
第5章 闭包
5.1闭包是如何工作的
5.2使用闭包
5.2.1私有变量
5.2.2回调(callback)与计时器(timer )
5.3绑定函数上下文
5.4偏应用函数
5.5函数重载
5.5.1缓存记忆
5.5.2函数包装
5.6即时函数
5.6.1临时作用域和私有变量
5.6.2循环
5.6.3类库包装
5.7总结
第6章 原型与面向对象
6.1实例化和原型
6.1.1对象实例化
6.1.2通过构造器判断对象类型
6.1.3继承与原型链
6.1.4 HTML DOM原型
6.2疑难陷阱
6.2.1扩展对象
6.2.2扩展数字
6.2.3子类化原生对象
6.2.4实例化问题
6.3编写类风格的代码
6.3.1检测函数是否可序列化
6.3.2子类的实例化
6.3.3保留父级方法
6.4总结
第7章 正则表达式
7.1为什么正则表达式很牛
7.2正则表达式进阶
7.2.1正则表达式解释
7.2.2术语与操作符
7.3编译正则表达式
7.4 捕获匹配的片段
7.4.1执行简单的捕获
7.4.2用全局表达式进行匹配
7.4.3捕获的引用
7.4.4没有捕获的分组
7.5利用函数进行替换
7.6利用正则表达式解决常见问题
7.6.1修剪字符串
7.6.2匹配换行符
7.6.3 Unicode
7.6.4转义字符
7.7总结
第8章 驯服线程和定时器
8.1定时器和线程是如何工作的
8.1.1设置和清除定时器
8.1.2执行线程中的定时器执行
8.1.3 timeout与interval之间的区别
8.2定时器延迟的最小化及其可靠性
8.3处理昂贵的计算过程
8.4中央定时器控制
8.5异步测试
8.6总结
第三部分 忍者训练
第9章 忍者点金术:运行时代码求值
9.1代码求值机制
9.1.1用eval()方法进行求值
9.1.2用函数构造器进行求值
9.1.3用定时器进行求值
9.1.4全局作用域内的求值操作
9.1.5安全的代码求值
9.2函数反编译
9.3代码求值实战
9.3.1 JSON转化
9.3.2导入有命名空间的代码
9.3.3 JavaScript压缩和混淆
9.3.4动态重写代码
9.3.5面向切面的脚本标签
9.3.6元语言和领域特定语言
9.4总结
第10章 with语句
10.1 with是怎么回事
10.1.1在with作用域内引用属性
10.1.2在with作用域内进行赋值
10.1.3性能方面的注意事项
10.2真实示例
10.3导入有命名空间的代码
10.4测试
10.5使用With进行模板化
10.6总结
第11章 开发跨浏览器策略
11.1选择要支持的浏览器
11.2五大开发关注点
11.2.1浏览器bug和浏览器差异
11.2.2浏览器bug修复
11.2.3与外部代码(标记)一起共存
11.2.4缺失的功能
11.2.5回归
11.3实现策略
11.3.1安全的跨浏览器修复
11.3.2对象检测
11.3.3特征仿真
11.3.4不可检测的浏览器问题
11.4减少假设
11.5总结
第12章 洞悉特性、属性和样式
12.1 DOM特性和DOM属性
12.1.1跨浏览器命名
12.1.2命名限制
12.1.3 XML与HTML之间的差异
12.1.4自定义特性的行为
12.1.5性能注意事项
12.2跨浏览器的attribute问题
12.2.1 DOM中的id/name膨胀
12.2.2 URL规范化
12.2.3 style特性
12.2.4 type特性
12.2.5 tab index问题
12.2.6节点名称
12.3令人头疼的样式特性
12.3.1样式在何处
12.3.2样式属性命名
12.3.3float样式属性
12.3.4像素值的转换过程
12.3.5测量元素的高度和宽度
12.3.6通过opacity看透明度
12.3.7颜色属性
12.4获取计算样式
12.5总结
第四部分 火影训练
第13章 不老事件
13.1绑定和解绑事件处理程序
13.2 Event对象
13.3处理程序的管理
13.3.1集中存储相关信息
13.3.2管理事件处理程序
13.4事件触发
13.5冒泡与委托
13.5.1将事件委托给祖先元素
13.5.2修复浏览器的不足
13.6文档就绪事件(document ready)
13.7总结
第14章 DOM操作
14.1向DOM中注入HTML
14.1.1将HTML转换成DOM
14.1.2将DOM插入到文档中
14.1.3脚本执行
14.2克隆元素
14.3删除元素
14.4文本内容
14.4.1设置文本
14.4.2获取文本
14.5总结
第15章 CSS选择器引擎
15.1 W3C Selectors API
15.2利用XPath查找元素
15.3纯DOM实现
15.3.1对选择器进行解析
15.3.2查找元素
15.3.3过滤结果集
15.3.4递归和合并
15.3.5自下而上的选择器引用
15.4总结