1 认识JavaScript 1
1.1 认识JavaScript从表单验证开始 1
1.2 在JavaScript特效中迷失 5
1.3 还原一个真实的JavaScript 6
1.4 JavaScript热潮再起 8
2 JavaScript语言基础 11
2.1 JavaScript语法的关键特性 11
2.1.1 弱类型的变量 12
2.1.2 每个语句结尾的分号非强制要求 12
2.1.3 大括号标注代码块 13
2.1.4 区分大小写 13
2.1.5 注释与C语言和Java语言一致 14
2.1.6 JavaScript关键字 14
2.1.7 JavaScript保留字 14
2.2 JavaScript变量 15
2.2.1 变量定义 15
2.2.2 原始值类型 17
2.2.3 引用值类型 22
2.2.4 变量类型转换 28
2.3 JavaScript运算符 33
2.3.1 数学运算符 33
2.3.2 逻辑和位运算符 40
2.3.3 关系运算符 50
2.3.4 其他运算符 56
2.4 JavaScript语句 61
2.4.1 if判断语句 61
2.4.2 循环语句 65
2.4.3 with语句 72
2.5 JavaScript函数 72
2.5.1 函数定义 73
2.5.2 arguments对象 75
2.5.3 Function类 77
3 JavaScript数据结构 80
3.1 JavaScript算法的重要性 80
3.2 常用数据结构的JavaScript实现 81
3.2.1 线性表 81
3.2.2 栈和队列 96
3.2.3 二维数组和广义表 104
3.3 常用算法的JavaScript实现 110
3.3.1 排序算法 110
3.3.2 查找算法 117
3.3.3 表达式求值 121
3.3.4 离散事件模拟 126
4 面向对象JavaScript 132
4.1 面向对象编程的优点 133
4.2 基于对象的JavaScript 134
4.3 类的定义 142
4.3.1 工厂方式 142
4.3.2 构造函数的方式 146
4.3.3 原型方式 147
4.4 类的继承 152
4.4.1 对象冒充 152
4.4.2 call()与apply()方法 155
4.4.3 原型链 160
4.5 类的多态与重载 163
5 JavaScript与BOM 166
5.1 什么是BOM 166
5.2 BOM的组成 167
5.2.1 window对象 168
5.2.2 document对象 170
5.2.3 frames对象 171
5.2.4 history对象 172
5.2.5 location对象 173
5.2.6 navigator对象 174
5.2.7 screen对象 175
5.3 用JavaScript操作BOM 175
5.4 BOM应用实例 177
5.4.1 自定义状态栏 177
5.4.2 显示对话框 179
5.4.3 打开新窗口 182
6 JavaScript与DOM 188
6.1 DOM与DOM标准 188
6.1.1 DOM的文档结构 189
6.1.2 DOM标准及其在不同浏览器中的实现 191
6.1.3 DOM与BOM 198
6.1.4 标准DOM功能 200
6.2 我们所关心的HTML DOM 202
6.2.1 DOM对象 202
6.2.2 DOM事件 203
6.2.3 HTML树的结点 204
6.2.4 处理XML文档 209
6.3 用JavaScript操作DOM 213
6.3.1 访问结点 213
6.3.2 创建与删除结点 216
6.3.3 遍历DOM 218
6.3.4 动态HTML DOM 220
6.3.5 自定义右键菜单 223
6.3.6 可编辑Table 224
6.4 JavaScript与DOM应用实例:双向选择列表框 227
7 JavaScript与CSS 234
7.1 Web页面中的CSS 235
7.1.1 通过内联方式在Web页面中引入CSS 236
7.1.2 通过外联方式在Web页面中引入CSS 238
7.2 用JavaScript操作CSS 240
7.2.1 内联样式的操作 240
7.2.2 外联样式的操作 243
7.3 JavaScript与CSS应用实例:滑轮新闻显示 247
8 JavaScript与Web UI 255
8.1 什么是Web UI 255
8.2 实现Web UI面临的挑战 257
8.3 利用JavaScript、DOM、CSS实现Web UI 258
8.4 一套简单Web UI的实现 260
8.4.1 可拖拽UI技术 260
8.4.2 可伸缩的UI技术 271
8.4.3 可持久化的个性化UI 280
9 JavaScript与XML 287
9.1 简单了解XML 287
9.1.1 XML基本知识 289
9.1.2 XML应用 293
9.1.3 为什么要使用XML 294
9.2 用JavaScript操作XML 295
9.2.1 文档对象模型(DOM) 295
9.2.2 DOM的结点 296
9.2.3 结点信息的属性 297
9.2.4 不同浏览器DOM的创建 298
9.2.5 代码兼容性 300
9.3 XML文件的访问 302
9.3.1 搜索结点对象 302
9.3.2 查询结点的值 306
9.3.3 一个简单的遍历XML文件的例子 307
9.4 操作XML文件 308
9.4.1 创建结点 308
9.4.2 添加结点 311
9.4.3 删除结点 313
9.4.4 替换结点 315
9.4.5 复制结点 317
9.4.6 修改结点内容 317
9.5 JavaScript操作XML应用实例 319
9.5.1 创建并保存XML文件 319
9.5.2 制作联动下拉框 321
9.6 利用XSLT显示XML内容 324
9.6.1 简单了解XSL,XSLT 324
9.6.2 在XML文件中引用样式表 325
9.6.3 XSLT语法 327
9.6.4 用XSLT生成网页菜单 334
10 JavaScript与Ajax 341
10.1 一夜春风Ajax来 341
10.1.1 Ajax是什么 342
10.1.2 Web开发为什么需要Ajax 344
10.1.3 Ajax技术组成 346
10.1.4 Ajax的应用现状 350
10.1.5 Ajax的优点与缺点 351
10.2 Ajax的核心对象XMLHttpRequest 355
10.2.1 XMLHttpRequest对象 355
10.2.2 方法和属性 360
10.2.3 Ajax交互请求模型 363
10.2.4 请求方法GET与POST 364
10.2.5 处理响应 368
10.3 Ajax的应用实例 369
10.3.1 后台验证,节省的不仅是流量 369
10.3.2 延迟装载,加快页面装入速度 371
10.3.3 本地缓存,获得更好的交互速度 378
10.3.4 树形菜单,实现数据惰性加载 384
10.3.5 局部更新,Ajax带来的惊喜 387
10.3.6 显示进度,非Ajax莫属 390
10.3.7 更新图表,不再是桌面程序的专利 395
10.3.8 自动完成,显著改善用户体验 399
10.3.9 褪色模式,有效提醒用户的方式 403
10.3.10 保持会话,需要注意的地方 405
10.3.11 自定义UI,提供个性化UI支持 408
10.3.12 ToolTip,显示详细信息的好方法 412
10.3.13 发送XML文件,结构化数据提交的最好方式 416
10.3.14 数据排序,Ajax与XSLT的接 422
11 JavaScript项目开发 425
11.1 开发调试工具 426
11.1.1 JavaScript代码编辑工具 426
11.1.2 JavaScript语法验证工具 428
11.1.3 JavaScript跟踪调试工具 430
11.2 对多语言支持 435
11.2.1 检测客户端浏览器的语言 435
11.2.2 利用字符串资源文件 437
11.3 保证代码安全的方法 442
11.3.1 代码混淆法 443
11.3.2 代码加密法 444
12 基于XML的通用验证框架:X-valid 448
12.1 面对验证时的无奈 449
12.2 我们需要什么样的验证框架 450
12.3 基于XML的通用验证框架:X-valid 452
12.3.1 XML规则设计 452
12.3.2 内置格式验证规则及其扩展 459
12.3.3 应用接口设计 462
12.3.4 核心程序设计 466
12.3.5 验证框架的使用 482
参考文献 491