-
JavaScript进阶教程
资源介绍
第 1 章 JavaScript 是什么...............................................1 3
1.1 历史简述..............................................1
1.2 JavaScript 实现..............................................2
1.2.1 ECMAScript
1.2.2 DOM..............................................5
1.2.3 BOM..............................................8
1.3 小结..............................................8
第 2 章 ECMAScript 基础...............................................9
2.1 语法..............................................9
2.2 变量..............................................10
2.3 关键字..............................................12
2.4 保留字..............................................12
2.5 原始值和引用值..............................................13
2.6 原始类型..............................................13
2.6.1 typeof 运算符..............................................14
2.6.2 Undefined 类型..............................................14
2.6.3 Null 类型..............................................15
2.6.4 Boolean 类型..............................................15
2.6.5 Number 类型..............................................15
2.6.6 String 类型..............................................17
2.7 转换..............................................18
2.7.1 转换成字符串..............................................18
2.7.2 转换成数字..............................................19
2.7.3 强制类型转换..............................................20
2.8 引用类型..............................................22
2.8.1 Object 类..............................................22
2.8.2 Boolean 类..............................................23
2.8.3 Number 类..............................................23
2.8.4 String 类..............................................24
2.8.5 instanceof 运算符..............................................28
2.9 运算符..............................................28
2.9.1 一元运算符..............................................28
2.9.2 位运算符..............................................32
2.9.3 Boolean 运算符..............................................37
2.9.4 乘性运算符..............................................40
2.9.5 加性运算符..............................................41
2.9.6 关系运算符..............................................42
2.9.7 等性运算符..............................................43
2.9.8 条件运算符..............................................45
2.9.9 赋值运算符..............................................45
2.9.10 逗号运算符..............................................46
2.10 语句..............................................46
2.10.1 if 语句..............................................46
2.10.2 迭代语句..............................................47
2.10.3 有标签的语句..............................................48
2.10.4 break 语句和 continue
语句..............................................48
2.10.5 with 语句..............................................50
2.10.6 switch 语句..............................................50
2.11 函数..............................................51
2.11.1 无重载..............................................53
2.11.2 arguments 对象..............................................53
2.11.3 Function 类..............................................54
2.11.4 闭包..............................................56
2.12 小结..............................................57
第 3 章 对象基础...............................................58
3.1 面向对象术语..............................................58
3.1.1 面向对象语言的要求..............................................58
3.1.2 对象的构成..............................................59
3.2 对象应用..............................................59
3.2.1 声明和实例化..............................................59
3.2.2 对象引用..............................................59
3.2.3 对象废除..............................................59
3.2.4 早绑定和晚绑定..............................................60
3.3 对象的类型..............................................60
3.3.1 本地对象..............................................60
3.3.2 内置对象..............................................70
3.3.3 宿主对象..............................................75
3.4 作用域..............................................75
3.4.1 公用、受保护和私有作用域..............................................75
3.4.2 静态作用域并非静态的..............................................76
3.4.3 关键字 this. 76
3.5 定义类或对象..............................................78
3.5.1 工厂方式..............................................78
3.5.2 构造函数方式..............................................80
3.5.3 原型方式..............................................80
3.5.4 混合的构造函数/原型方式..............................................81
3.5.5 动态原型方法..............................................82
3.5.6 混合工厂方式..............................................83
3.5.7 采用哪种方式..............................................84
3.5.8 实例..............................................84
3.6 修改对象..............................................86
3.6.1 创建新方法..............................................86
3.6.2 重定义已有方法..............................................87
3.6.3 极晚绑定..............................................88
3.7 小结..............................................88
第 4 章 继承. 104...............................................89 100
4.1 继承机制实例..............................................89
4.2 继承机制的实现..............................................90
4.2.1 继承的方式..............................................90
4.2.2 一个更实际的例子..............................................96
4.3 其他继承方式..............................................100
4.3.1 zInherit
4.3.2 xbObjects
4.4 小结..............................................108
第 5 章 浏览器中的 JavaScript 109
5.1 HTML 中的 JavaScript 109
5.1.1 标签..............................................109
5.1.2 外部文件格式..............................................110
5.1.3 内嵌代码和外部文件..............................................111
5.1.4 标签放置..............................................111
5.1.5 隐藏还是不隐藏..............................................113
5.1.6 标签..............................................113
5.1.7 XHTML 中的改变..............................................114
5.2 SVG 中的 JavaScript 116
5.2.1 SVG 基础..............................................116
5.2.2 SVG 中的标签..............................................117
5.2.3 SVG 中的标签放置..............................................118
5.3 BOM..............................................119
5.3.1 window 对象..............................................119
5.3.2 document 对象..............................................130
5.3.3 location 对象..............................................133
5.3.4 navigator 对象..............................................135
5.3.5 screen 对象..............................................136
5.4 小结..............................................137
第 6 章 DOM 基础...............................................138
6.1 什么是 DOM?..............................................138
6.1.1 XML 简介..............................................138
6.1.2 针对 XML 的 API 141
6.1.3 节点的层次..............................................141
6.1.4 特定语言的 DOM..............................................144
6.2 对 DOM 的支持..............................................145
6.3 使用 DOM..............................................145
6.3.1 访问相关的节点..............................................145
6.3.2 检测节点类型..............................................146
6.3.3 处理特性..............................................147
6.3.4 访问指定节点..............................................148
6.3.5 创建和操作节点..............................................150
6.4 HTML DOM 特征功能..............................................155
6.4.1 让特性像属性一样..............................................155
6.4.2 table 方法..............................................156
6.5 遍历 DOM..............................................158
6.5.1 NodeIterator. 158
6.5.2 TreeWalker. 163
6.6 测试与 DOM 标准的一致性..............................................165
6.7 DOM Level 3. 166
6.8 小结..............................................166
第 7 章 正则表达式...............................................167
7.1 正则表达式支持..............................................167
7.1.1 使用 RegExp 对象..............................................168
7.1.2 扩展的字符串方法..............................................169
7.2 简单模式..............................................170
7.2.1 元字符..............................................170
7.2.2 使用特殊字符..............................................170
7.2.3 字符类..............................................172
7.2.4 量词..............................................174
7.3 复杂模式..............................................177
7.3.1 分组..............................................177
7.3.2 反向引用..............................................178
7.3.3 候选..............................................179
7.3.4 非捕获性分组..............................................180
7.3.5 前瞻..............................................181
7.3.6 边界..............................................182
7.3.7 多行模式..............................................183
7.4 理解 RegExp 对象..............................................184
7.4.1 实例属性..............................................184
7.4.2 静态属性..............................................185
7.5 常用模式..............................................186
7.5.1 验证日期..............................................187
7.5.2 验证信用卡号..............................................188
7.5.3 验证电子邮件地址..............................................192
7.6 小结..............................................193
第 8 章 检测浏览器和操作系统 201...............................................194. 200
8.1 navigator 对象..............................................194. 198
8.2 检测浏览器的方式..............................................194
8.2.1 对象/特征检测法..............................................194
8.2.2 user-agent 字符串检测法..............................................195
8.3 user-agent 字符串简史..............................................196
8.3.1 Netscape Navigator 3.0 与
IE3.0. 196
8.3.2 Netscape Communicator 4.0 与
IE 4.0. 197
8.3.3 IE 5.0 及更高版本..............................................198
8.3.4 Mozilla
8.3.5 Opera
8.3.6 Safari
8.3.7 结语..............................................201
8.4 浏览器检测脚本..............................................201
8.4.1 方法学..............................................202
8.4.2 第一步..............................................202
8.4.3 检测 Opera................................................ 204
8.4.4 检测 Konqueror/Safari ...............................................206
8.4.5 检测 IE................................................ 208
8.4.6 检测 Mozilla. ...............................................209
8.5 平台/操作系统检测脚本..............................................211
8.5.1 方法学..............................................211
8.5.2 第一步..............................................212
8.5.3 检测 Windows 操作系统..............................................212
8.5.4 检测 Macintosh 操作系统..............................................214
8.5.5 检测 Unix 操作系统..............................................214
8.6 全部脚本..............................................215
8.7 例子:登录页面..............................................219
8.8 小结..............................................224
第 9 章 事件...............................................225
9.1 今天的事件..............................................225
9.2 事件流..............................................226
9.2.1 冒泡型事件..............................................226
9.2.2 捕获型事件..............................................227
9.2.3 DOM 事件流..............................................228
9.3 事件处理函数/监听函数..............................................22
9................................................ 230
9.3.1 IE
9.3.2 DOM..............................................231
9.4 事件对象..............................................232
9.4.1 定位...............................................233
9.4.2 属性...............................................233
9.4.3 相似性..............................................235
9.4.4 区别..............................................238
9.5 事件的类型..............................................240
9.5.1 鼠标事件..............................................240
9.5.2 键盘事件..............................................244
9.5.3 HTML 事件..............................................246
9.5.4 变化事件..............................................251
9.6 跨平台的事件..............................................252
9.6.1 EventUtil 对象..............................................252
9.6.2 添加/删除事件处理函数..............................................252
9.6.3 格式化 event 对象..............................................254
9.6.4 获取事件对象..............................................258
9.6.5 示例..............................................259
9.7 小结..............................................260
第 10 章 高级 DOM 技术...............................................261
10.1 样式编程..............................................261
10.1.1 DOM 样式的方法..............................................263
10.1.2 自定义鼠标提示..............................................264
10.1.3 可折叠区域..............................................265
10.1.4 访问样式表..............................................266
10.1.5 最终样式..............................................270
10.2 innerText 和 innerHTML. 271
10.3 outerText 和 outerHTML. 273
10.4 范围..............................................274
10.4.1 DOM 中的范围..............................................274
10.4.2 IE 中的范围..............................................284
10.4.3 范围在实际中的应用..............................................288
10.5 小结..............................................288
第 11 章 表单和数据完整性 ...............................................289
11.1 表单基础..............................................289
11.2 对元素进行脚本编写..............................................291
11.2.1 获取表单的引用..............................................291
11.2.2 访问表单字段..............................................291
11.2.3 表单字段的共性..............................................292
11.2.4 聚焦于第一个字段..............................................292
11.2.5 提交表单..............................................293
11.2.6 仅提交一次..............................................294
11.2.7 重置表单..............................................295
11.3 文本框..............................................295
11.3.1 获取/更改文本框的值..............................................296
11.3.2 选择文本..............................................297
11.3.3 文本框事件..............................................298
11.3.4 自动选择文本..............................................298
11.3.5 自动切换到下一个..............................................299
11.3.6 限制 textarea 的字符数..............................................300
11.3.7 允许/阻止文本框中的字符..............................................301
11.3.8 使用上下按键操作数字文本..............................................306
11.4 列表框和组合框..............................................308
11.4.1 访问选项..............................................309
11.4.2 获取/更改选中项..............................................309
11.4.3 添加选项..............................................310
11.4.4 删除选项..............................................311
11.4.5 移动选项..............................................312
11.4.6 重新排序选项..............................................313
11.5 创建自动提示的文本框..............................................313
11.5.1 匹配..............................................314
11.5.2 内部机制..............................................314
11.6 小结..............................................316
第 12 章 表格排序...............................................317
12.1 起点——数组..............................................317
12.2 对单列的表格排序..............................................319
12.2.1 比较函数..............................................320
12.2.2 sortTable()函数..............................................320
12.3 对多列表格进行排序..............................................323
12.3.1 比较函数生成器..............................................323
12.3.2 修改 sortTable()方法..............................................324
12.3.3 逆序排列..............................................325
12.3.4 对不同的数据类型进行排序..............................................327
12.3.5 高级排序..............................................330
12.4 小结..............................................334
第 13 章 拖放...............................................335
13.1 系统拖放..............................................335
13.1.1 拖放事件..............................................336
13.1.2 数据传输对象dataTransfer. 341
13.1.3 dragDrop()方法..............................................345
13.1.4 优点及缺点..............................................346
13.2 模拟拖放..............................................346
13.2.1 代码..............................................347
13.2.2 创建放置目标..............................................349
13.2.3 优点及缺点..............................................352
13.3 zDragDrop. 352
13.3.1 创建可拖动元素..............................................352
13.3.2 创建放置目标..............................................353
13.3.3 事件..............................................353
13.3.4 例子..............................................354
13.4 小结..............................................355
第 14 章 错误处理...............................................356
14.1 错误处理的重要性..............................................356
14.2 错误和异常..............................................357
14.3 错误报告..............................................358
14.3.1 IE(Windows)..............................................358
14.3.2 IE(MacOS)..............................................359
14.3.3 Mozilla(所有平台)..............................................359
14.3.4 Safari(MacOS)..............................................360
14.3.5 Opera 7(所有平台)..............................................361
14.4 处理错误..............................................362
14.4.1 onerror 事件处理函数..............................................362
14.4.2 try...catch 语句..............................................365
14.5 调试技巧..............................................370
14.5.1 使用警告框..............................................370
14.5.2 使用 Java 控制台..............................................371
14.5.3 将消息写入 JavaScript 控制台
(仅限 Opera 7+)..............................................372
14.5.4 抛出自定义错误..............................................372
14.5.5 JavaScript 校验器..............................................373
14.6 调试器..............................................374
14.6.1 Microsoft Script Debugger 374
14.6.2 Venkman. 376
14.7 小结..............................................383
第 15 章 JavaScript 中的 XML.. 384
15.1 浏览器中的 XML DOM 支持..............................................384
15.1.1 IE 中的 XML DOM 支持..............................................384
15.1.2 Mozilla 中 XML DOM 支持..............................................388
15.1.3 通用接口..............................................393
15.2 浏览器中的 XPath 支持..............................................403
15.2.1 XPath 简介..............................................403
15.2.2 IE 中的 XPath 支持..............................................404
15.2.3 Mozilla 中的 XPath 支持..............................................404
15.3 浏览器中的 XSLT 支持..............................................408
15.3.1 IE 中的 XSLT 支持..............................................410
15.3.2 Mozilla 中 XSLT 支持..............................................413
15.4 小结..............................................415
第 16 章 客户端与服务器端的通信...............................................416
16.1 cookie. 416
16.1.1 cookie 的成分..............................................416
16.1.2 其他安全限制..............................................417
16.1.3 JavaScript 中的 cookie. 417
16.1.4 服务器端的 cookie. 419
16.1.5 在客户端与服务器端之间
传递 cookie. 422
16.2 隐藏框架..............................................423
16.3 HTTP 请求..............................................426
16.3.1 使用 HTTP 首部..............................................428
16.3.2 实现的复制品..............................................429
16.3.3 进行 GET 请求..............................................430
16.3.4 进行 POST 请求..............................................430
16.4 LiveConnect 请求..............................................431
16.4.1 进行 GET 请求..............................................431
16.4.2 进行 POST 请求..............................................433
16.5 智能 HTTP 请求..............................................435
16.5.1 get()方法..............................................435
16.5.2 post()方法..............................................438
16.6 实际使用..............................................439
16.7 小结..............................................439
第 17 章 Web 服务...............................................440
17.1 Web 服务快速入门..............................................440
17.1.1 Web 服务是什么?..............................................440
17.1.2 WSDL. 441
17.2 IE 中的 Web 服务..............................................443
17.2.1 使用 WebService 组件..............................................444
17.2.2 WebService 组件例子..............................................445
17.3 Mozilla 中的 Web 服务..............................................447
17.3.1 加强的特权..............................................447
17.3.2 使用 SOAP 方法..............................................448
17.3.3 使用 WSDL 代理..............................................451
17.4 跨浏览器的方案..............................................454
17.4.1 WebService 对象..............................................454
17.4.2 Temperature 服务..............................................456
17.4.3 使用TemperatureService对象..............................................458
17.5 小结..............................................458
第 18 章 与插件进行交互...............................................459
18.1 为何使用插件..............................................459
18.2 流行的插件..............................................460
18.3 MIME 类型..............................................460
18.4 嵌入插件..............................................461
18.4.1 加入参数..............................................461
18.4.2 Netscape 4.x. 462
18.5 检测插件..............................................462
18.5.1 检测 Netscape 式插件..............................................463
18.5.2 检测 ActiveX 插件..............................................467
18.5.3 跨浏览器检测..............................................469
18.6 Java applet 470
18.6.1 嵌入 applet 470
18.6.2 在 JavaScript 中引用 applet 471
18.6.3 创建 applet 471
18.6.4 JavaScript 到 Java 的通信..............................................472
18.6.5 Java 到 JavaScript 的通信..............................................475
18.7 Flash 动画..............................................477
18.7.1 嵌入 Flash 动画..............................................477
18.7.2 引用 Flash 动画..............................................478
18.7.3 JavaScript 到 Flash 的通信..............................................478
18.7.4 Flash 到 JavaScript 通信..............................................481
18.8 ActiveX 控件..............................................483
18.9 小结..............................................485
第 19 章 部署问题...............................................486
19.1 安全性..............................................486
19.1.1 同源策略..............................................486
19.1.2 窗口对象问题..............................................487
19.1.3 Mozilla 特有的问题..............................................488
19.1.4 资源限制..............................................490
19.2 国际化..............................................491
19.2.1 使用 JavaScript 检测语言..............................................491
19.2.2 策略..............................................492
19.2.3 字符串的思考..............................................492
19.3 优化 JavaScript 495
19.3.1 下载时间..............................................495
19.3.2 执行时间..............................................499
19.4 知识产权的问题..............................................512
19.4.1 混淆..............................................512
19.4.2 Microsoft Script Encoder
(仅 IE)..............................................513
19.5 小结..............................................514
第 20 章 JavaScript 的未来...............................................515
20.1 ECMAScript 4. 515
20.1.1 Netscape 的提案..............................................515
20.1.2 实现..............................................521
20.2 ECMAScript for XML. 522
20.2.1 途径..............................................522
20.2.2 for each..in 循环..............................................524
20.2.3 新的类..............................................524
20.2.4 实现..............................................532
20.3 小结..............................................532