目 录
第1章 种子模块 1
1.1 命名空间 1
1.2 对象扩展 3
1.3 数组化 4
1.4 类型的判定 6
1.5 主流框架引入的机制——domReady 14
1.6 无冲突处理 16
第2章 模块加载系统 18
2.1 AMD规范 18
2.2 加载器所在路径的探知 19
2.3 require方法 21
2.4 define方法 27
第3章 语言模块 31
3.1 字符串的扩展与修复 31
3.2 数组的扩展与修复 43
3.3 数值的扩展与修复 50
3.4 函数的扩展与修复 56
3.5 日期的扩展与修复 61
第4章 浏览器嗅探与特征侦测 64
4.1 判定浏览器 64
4.2 事件的支持侦测 67
4.3 样式的支持侦测 69
4.4 jQuery一些常用特征的含义 70
第5章 类工厂 72
5.1 JavaScript对类的支撑 72
5.2 各种类工厂的实现 77
5.2.1 相当精巧的库——P.js 77
5.2.2 JS.Class 80
5.2.3 simple-inheritance 82
5.2.4 体现JavaScript灵活性的库——def.js 84
5.3 es5属性描述符对OO库的冲击 88
第6章 选择器引擎 100
6.1 浏览器内置的寻找元素的方法 100
6.2 getElementsBySelector 102
6.3 选择器引擎涉及的知识点 106
6.4 选择器引擎涉及的通用函数 114
6.4.1 isXML 114
6.4.2 contains 115
6.4.3 节点排序与去重 117
6.4.4 切割器 121
6.4.5 属性选择器对于空白字符的匹配策略 123
6.4.6 子元素过滤伪类的分解与匹配 125
6.5 Sizzle引擎 127
第7章 节点模块 137
7.1 节点的创建 138
7.2 节点的插入 149
7.3 节点的复制 155
7.4 节点的移除 158
7.5 innerHTML、innerText与outerHTML的处理 161
7.6 一些奇葩的元素节点 164
7.6.1 iframe元素 164
7.6.2 object元素 174
7.6.3 video标签 179
第8章 数据缓存系统 185
8.1 jQuery的第1代缓存系统 185
8.2 jQuery的第2代缓存系统 190
8.3 mass Framework的第1代数据缓存系统 193
8.4 mass Framework的第2代数据缓存系统 196
8.5 mass Framework的第3代数据缓存系统 198
8.6 总结 199
第9章 样式模块 200
9.1 主体结构 201
9.2 样式名的修正 205
9.3 个别样式的特殊处理 206
9.3.1 opacity 206
9.3.2 user-select 208
9.3.3 background-position 208
9.3.4 z-index 209
9.3.5 盒子模型 210
9.3.6 元素的尺寸 211
9.3.7 元素的显隐 218
9.3.8 元素的坐标 222
9.4 元素的滚动条的坐标 228
第10章 属性模块 229
10.1 如何区分固有属性与自定义属性 231
10.2 如何判定浏览器是否区分固有属性与自定义属性 233
10.3 IE的属性系统的三次演变 234
10.4 className的操作 235
10.5 Prototype.js的属性系统 240
10.6 jQuery的属性系统 246
10.7 mass Framework的属性系统 249
10.8 value的操作 253
第11章 事件系统 256
11.1 onXXX绑定方式的缺陷 257
11.2 attachEvent的缺陷 258
11.3 addEventListener的缺陷 259
11.4 Dean Edward的addEvent.js源码分析 260
11.5 jquery1.8.2的事件模块概览 263
11.6 jQuery.event.add的源码解读 266
11.7 jQuery.event.remove的源码解读 269
11.8 jQuery.event.dispatch的源码解读 271
11.9 jQuery.event.trigger的源码解读 276
11.10 jQuery对事件对象的修复 280
11.11 滚轮事件的修复 286
11.12 mouseenter与mouseleave事件的修复 290
11.13 focusin与focusout事件的修复 293
11.14 旧版本IE下submit的事件代理的实现 295
11.15 oninput事件的兼容性处理 296
第12章 章异步处理 298
12.1 setTimeout与setInterval 299
12.2 Mochikit Deferred 301
12.3 JSDeferred 309
12.3.1 得到一个Deferred实例 310
12.3.2 Deferred链的实现 312
12.3.3 JSDeferred的并归结果 316
12.3.4 JSDeferred的性能提速 318
12.4 jQuery Deferred 321
12.5 Promise/A与mmDeferred 327
12.6 JavaScript异步处理的前景 334
第13章 数据交互模块 339
13.1 Ajax概览 339
13.2 优雅地取得XMLHttpRequest对象 339
13.3 XMLHttpRequest对象的事件绑定与状态维护 342
13.4 发送请求与数据 344
13.5 接收数据 346
13.6 上传文件 349
13.7 一个完整的Ajax实现 351
第14章 动画引擎 363
14.1 动画的原理 363
14.2 缓动公式 365
14.3 API的设计 368
14.4 mass Framework基于JavaScript的动画引擎 369
14.5 requestAnimationFrame 377
14.6 CSS3 transition 383
14.7 CSS3 animation 388
14.8 mass Framework基于CSS的动画引擎 390
第15章 插件化 398
15.1 jQuery的插件的一般写法 398
15.2 jQuery UI对内部类的操作 401
15.3 jQuery easy UI的智能加载与个别化制定 403
15.4 更直接地操作UI实例 406
第16章 MVVM 409
16.1 当前主流MVVM框架介绍 410
16.2 属性变化的监听 416
16.3 ViewModel 418
16.4 绑定 429
16.5 监控数组与子模板 437
· · · · · · (
收起)