第1篇 基础篇 1
第1章 JavaScript概述 1
1.1 初识JavaScript 1
1.1.1 理解JavaScript的历史 1
1.1.2 JavaScript标准 2
1.1.3 JavaScript的现况 2
1.1.4 JavaScript的发展趋势 3
1.2 简单的脚本语言 3
1.2.1 认识脚本语言 3
1.2.2 脚本语言的分类 3
1.2.3 JavaScript的作用 4
1.2.4 JavaScript和其他语言的异同 4
1.2.5 JavaScript与Java的异同 4
1.3 第一个JavaScript程序 4
1.3.1 预备知识 4
1.3.2 选择JavaScript编辑器 5
1.3.3 编写“Hello World”程序 6
1.3.4 浏览器对JavaScript的支持 7
1.4 注意事项 8
1.4.1 大小写敏感 8
1.4.2 注意空格与换行 8
1.4.3 分号可有可无 9
1.5 小结 9
1.6 习题 10
第2章 数据类型 12
2.1 基本数据类型 12
2.1.1 字符串型数据 12
2.1.2 深入理解字符串 13
2.1.3 使用数值型数据 14
2.1.4 使用布尔型数据 16
2.2 复合数据类型 17
2.2.1 常用内置对象 17
2.2.2 常用日期对象 18
2.2.3 理解全局对象 20
2.2.4 常用数学对象 21
2.2.5 常用字符串对象 23
2.2.6 掌握数组对象 24
2.3 其他数据类型 26
2.3.1 使用函数 26
2.3.2 使用空值 27
2.3.3 使用不确定的类型 28
2.4 数据类型的转换 29
2.4.1 隐式类型转换 29
2.4.2 显式类型转换 30
2.5 小结 31
2.6 习题 31
第3章 变量和常量 35
3.1 常量 35
3.1.1 常量分类 35
3.1.2 使用常量 35
3.2 变量 36
3.2.1 什么是变量 36
3.2.2 如何定义变量 37
3.2.3 变量的命名 39
3.2.4 变量的作用范围 40
3.2.5 变量的用途 41
3.3 JavaScript关键字详解 42
3.4 小结 42
3.5 习题 43
第4章 表达式与运算符 45
4.1 什么是表达式 45
4.2 什么是操作数 46
4.3 运算符概述 47
4.3.1 什么是运算符 47
4.3.2 操作数的分类 47
4.4 算术运算符简介 48
4.4.1 加法运算符 48
4.4.2 减法运算符 48
4.4.3 乘法运算符 49
4.4.4 除法运算符 50
4.4.5 取模运算符 50
4.4.6 负号运算符 51
4.4.7 正号运算符 51
4.4.8 递增运算符 52
4.4.9 递减运算符 53
4.5 关系运算符简介 54
4.5.1 相等运算符 54
4.5.2 等同运算符 55
4.5.3 不等运算符 55
4.5.4 不等同运算符 57
4.5.5 小于运算符 57
4.5.6 大于运算符 58
4.5.7 小于或等于运算符 59
4.5.8 大于或等于运算符 60
4.5.9 in运算符 60
4.5.10 instanceof运算符 61
4.6 字符串运算符简介 62
4.7 赋值运算符简介 62
4.8 逻辑运算符简介 63
4.8.1 逻辑与运算符 63
4.8.2 逻辑或运算符 64
4.8.3 逻辑非运算符 65
4.9 位运算符简介 65
4.9.1 位与运算符 65
4.9.2 位或运算符 66
4.9.3 位异或运算符 66
4.9.4 位非运算符 67
4.9.5 左移运算符 68
4.9.6 带符号右移运算符 69
4.9.7 高位补0右移运算符 69
4.10 其他运算符 70
4.10.1 条件运算符 70
4.10.2 new运算符 70
4.10.3 void运算符 70
4.10.4 typeof运算符 71
4.10.5 对象属性存取运算符 71
4.10.6 数组存取运算符 72
4.10.7 delete运算符 73
4.10.8 逗号运算符 73
4.10.9 函数调用运算符 74
4.10.10 this运算符 75
4.11 掌握运算符的优先级 75
4.12 小结 77
4.13 习题 77
第5章 控制语句 80
5.1 使用选择语句 80
5.1.1 if选择语句 80
5.1.2 if-else选择语句 82
5.1.3 if-else-if选择语句 83
5.1.4 switch多条件选择语句 84
5.1.5 选择语句综合示例 85
5.2 使用循环语句 87
5.2.1 for循环语句 87
5.2.2 while循环语句 88
5.2.3 do-while循环语句 89
5.2.4 for-in循环语句 90
5.2.5 break和continue跳转语句 90
5.2.6 循环语句综合示例 91
5.3 使用异常处理语句 92
5.3.1 try-catch语句 92
5.3.2 try-catch-finally语句 93
5.3.3 throw语句 94
5.3.4 异常处理语句综合示例 95
5.4 小结 96
5.5 习题 97
第6章 函数 102
6.1 函数的功能 102
6.2 函数的定义 102
6.2.1 函数的普通定义方式 102
6.2.2 函数的变量定义方式 105
6.2.3 函数的指针调用方式 106
6.2.4 认识函数参数 107
6.2.5 认识arguments对象 107
6.3 函数返回类型 108
6.3.1 值类型 108
6.3.2 引用类型 109
6.3.3 使用返回函数 109
6.4 函数的分类 110
6.4.1 构造函数 110
6.4.2 有返回值的函数 110
6.4.3 无返回值的函数 110
6.5 函数的作用域 110
6.5.1 公有函数的作用域 111
6.5.2 私有函数的作用域 111
6.5.3 使用this关键字 112
6.6 小结 113
6.7 习题 113
第7章 数组 118
7.1 数组简介 118
7.1.1 简单介绍数组的概念 118
7.1.2 认识数组元素 118
7.1.3 掌握多维数组 119
7.2 如何创建一个数组 119
7.2.1 创建空数组 119
7.2.2 指定数组长度创建新数组 119
7.2.3 指定数组元素创建新数组 120
7.2.4 直接创建新数组 120
7.3 数组元素的基本操作 120
7.3.1 提取数据——读取数组元素 121
7.3.2 添加数据——添加数组元素 121
7.3.3 删除数据——删除数组元素 121
7.3.4 详解数组元素的个数 121
7.4 数组对象的常见操作 122
7.4.1 字符转换——数组转换为字符串 122
7.4.2 字符连接——数组元素连接成字符串 122
7.4.3 数据添加——在数组尾部添加元素 123
7.4.4 数据更新——删除数组的最后一个元素 124
7.4.5 删除数据——移除数组顶端的元素 125
7.4.6 添加数据——在数组头部添加元素 126
7.4.7 扩充数组——添加元素并生成新数组 127
7.4.8 更新移动数据——删除、替换或插入数组元素 128
7.4.9 生成特定数据——获取数组中的一部分元素 130
7.4.10 置换数据——颠倒数组元素的顺序 130
7.4.11 数据排序——对数组元素进行排序 131
7.4.12 数据转换——将对象转换为本地字符串 133
7.5 小结 134
7.6 习题 134
第2篇 对象篇 137
第8章 JavaScript面向对象基础 137
8.1 面向对象概念 137
8.1.1 面向对象中的语言 137
8.1.2 对象的构成方式 138
8.2 对象应用 138
8.2.1 详解对象声明和实例化 138
8.2.2 详解对象的引用 140
8.2.3 详解对象的废除 140
8.2.4 详解对象的早绑定和晚绑定 141
8.3 JavaScript的对象层次 141
8.3.1 JavaScript对象模型结构 141
8.3.2 客户端对象层次简单介绍 142
8.3.3 浏览器对象模型详解 142
8.4 事件驱动与事件处理 143
8.4.1 详解事件与事件驱动 143
8.4.2 掌握事件与处理代码关联 144
8.4.3 函数调用事件 145
8.4.4 代码调用事件 146
8.4.5 掌握设置对象事件的方法 147
8.4.6 掌握显式调用事件处理程序 148
8.4.7 事件处理程序的返回值 148
8.4.8 事件与this运算符 150
8.5 常用事件 151
8.5.1 详解浏览器事件 151
8.5.2 详解鼠标移动事件 151
8.5.3 详解鼠标单击事件 152
8.5.4 详解加载与卸载事件 153
8.5.5 详解得到焦点与失去焦点事件 153
8.5.6 详解键盘事件 153
8.5.7 详解提交与重置事件 154
8.5.8 详解选择与改变事件 154
8.6 小结 155
8.7 习题 155
第9章 窗口和框架 158
9.1 window对象 158
9.1.1 认识window对象 158
9.1.2 认识window对象的使用方法 158
9.2 window对象事件及使用方法 159
9.2.1 装进去——装载文档 160
9.2.2 卸下来——卸载文档 160
9.2.3 焦点处理——得到焦点与失去焦点 161
9.2.4 调整窗口的大小 162
9.2.5 对错误进行处理 163
9.3 对话框 164
9.3.1 过滤错误——警告对话框 164
9.3.2 信息确认——询问对话框 165
9.3.3 信息录入——输入对话框 166
9.4 状态栏 166
9.4.1 详解状态栏 167
9.4.2 认识默认状态栏信息 167
9.4.3 认识状态栏瞬间信息 167
9.5 窗口操作 168
9.5.1 打开一个新窗口 168
9.5.2 认识窗口名字 169
9.5.3 如何关闭窗口 170
9.5.4 对窗口进行引用 171
9.5.5 对文档进行滚动 172
9.6 超时与时间间隔 173
9.6.1 对代码延迟执行 173
9.6.2 认识周期性执行代码 174
9.6.3 停止执行周期性执行代码 175
9.6.4 取消延迟执行的代码 176
9.7 框架操作 177
9.7.1 框架简介 177
9.7.2 详解父窗口与子窗口 177
9.7.3 详解窗口之间的关系 178
9.7.4 认识窗口名字 179
9.8 小结 179
9.9 习题 179
第10章 屏幕和浏览器对象 182
10.1 认识屏幕对象 182
10.1.1 利用屏幕对象检测显示器参数 182
10.1.2 利用屏幕对象检测客户端显示器的屏幕分辨率 183
10.1.3 利用屏幕对象检测客户端显示器屏幕的有效宽度和高度 184
10.1.4 利用屏幕对象进行网页开屏 185
10.2 认识浏览器对象 186
10.2.1 获取浏览器对象的属性值 186
10.2.2 MimeType对象和Plugin对象详解 187
10.2.3 浏览器对象的javaEnabled方法详解 188
10.3 小结 189
10.4 习题 189
第11章 文档对象 192
11.1 文档对象概述 192
11.1.1 初识文档对象 192
11.1.2 详解文档对象的使用方法 192
11.1.3 对标签中的值进行引用 193
11.1.4 详解引用文档中对象的方法 194
11.2 文档对象的应用 196
11.2.1 美化链接——设置超链接的颜色 196
11.2.2 美化网页——设置网页背景颜色和默认文字颜色 197
11.2.3 设置文档信息 198
11.2.4 如何在标题栏中显示滚动信息 199
11.2.5 如何防止盗链 200
11.2.6 详解在网页中输出内容 201
11.2.7 详解在其他文档中输出内容 201
11.2.8 详解输出非HTML文档 203
11.2.9 认识文档中的所有HTML元素 204
11.2.1 0如何引用文档中的HTML元素 205
11.2.1 1如何引用文档元素中的子元素 206
11.3 图像对象 207
11.3.1 图像对象概述 207
11.3.2 如何创建和使用图像对象 208
11.3.3 掌握图像对象的onerror事件 209
11.3.4 掌握显示图片的信息 210
11.3.5 对图片进行置换 211
11.3.6 认识随机图片 212
11.3.7 动态改变图片大小 213
11.4 链接对象 215
11.4.1 链接对象简介 215
11.4.2 掌握感知鼠标移动事件 215
11.4.3 对一个网页上的所有超链接进行查看 216
11.4.4 认识翻页程序 217
11.4.5 认识网站目录 219
11.5 锚对象 221
11.5.1 锚对象简介 221
11.5.2 认识锚对象与链接对象的区别 221
11.5.3 巧建文档索引 222
11.6 小结 223
11.7 习题 224
第12章 历史对象和地址对象 228
12.1 历史对象 228
12.1.1 历史对象简介 228
12.1.2 如何前进到上一页和后退到下一页 228
12.1.3 如何实现页面的跳转 230
12.2 地址对象 231
12.2.1 URL对象简介 231
12.2.2 如何获取指定地址的各个属性值 231
12.2.3 如何加载新网页 232
12.2.4 如何获取参数 233
12.2.5 如何装载新文档与重新装载当前文档 234
12.2.6 如何刷新文档 235
12.2.7 如何加载新文档 236
12.3 小结 237
12.4 习题 238
第13章 表单对象和表单元素 240
13.1 表单对象概述 240
13.1.1 表单对象简介 240
13.1.2 对大小写进行转换 240
13.1.3 表单的提交和重置 242
13.1.4 响应表单的提交和重置 243
13.2.表单对象的应用 244
13.2.1 如何进行表单验证 244
13.2.2 认识循环验证表单 246
13.2.3 掌握设置表单的提交方式 247
13.2.4 认识重置表单的提示 248
13.2.5 如何不使用提交按钮来提交表单 249
13.3 表单元素 251
13.3.1 表单元素简介 251
13.3.2 表单元素的命名方式 251
13.4 文本框 253
13.4.1 认识文本框的创建方式 253
13.4.2 如何查看文本框的属性值 253
13.4.3 如何动态跟踪文本框中输入的文字个数 254
13.4.4 如何限制文本框中输入的字数 255
13.4.5 如何自动选择文本框中的文字 256
13.5 按钮 257
13.5.1 按钮简介 257
13.5.2 按钮创建方式简介 257
13.5.3 认识网页调色板 257
13.5.4 如何改变多行文本框的大小 259
13.6 小结 260
13.7 习题 260
第14章 脚本化cookie 264
14.1 cookie对象简介 264
14.1.1 什么是cookie对象 264
14.1.2 cookie的作用和检测用户浏览器是否支持cookie 264
14.2 如何创建与读取cookie 265
14.3 如何获取cookie的值 266
14.4 认识cookie的编码 267
14.5 掌握cookie的生存期 270
14.6 掌握cookie的路径和域 271
14.7 了解cookie的安全性 272
14.8 掌握使用cookie的注意事项 274
14.9 小结 274
14.1 0习题 274
第3篇 高级技术篇 280
第15章 JavaScript与XML技术 280
15.1 XML简介 280
15.1.1 针对XML的API概述 280
15.1.2 认识节点的层次 280
15.1.3 掌握特定语言的文档模型 281
15.2 使用DOM 281
15.2.1 巧妙访问相关的节点 282
15.2.2 巧测节点类型 283
15.2.3 简单处理节点的属性 284
15.2.4 如何访问指定节点 285
15.2.5 如何创建新节点 287
15.2.6 如何修改节点 288
15.3 HTML DOM特性 289
15.3.1 让特性像属性一样 290
15.3.2 认识表格相关特性 291
15.4 遍历DOM文档 292
15.4.1 认识节点迭代器 292
15.4.2 巧妙遍历文档树 293
15.5 如何测试与DOM标准的一致性 295
15.6 小结 296
15.7 习题 296
第16章 正则表达式 299
16.1 正则表达式的基础知识 299
16.1.1 为何使用正则表达式 299
16.1.2 使用RegExp对象 299
16.2 简单模式 300
16.2.1 详解元字符 300
16.2.2 详解量词 301
16.3 复杂模式 302
16.3.1 使用分组 303
16.3.2 使用候选 303
16.3.3 使用非捕获性分组 304
16.3.4 使用前瞻 305
16.4 常用模式 306
16.4.1 使用正则表达式验证日期 306
16.4.2 使用正则表达式验证电子邮件地址 308
16.5 小结 309
16.6 习题 309
第17章 AJAX的基础知识 313
17.1 了解传统的Web技术及AJAX的由来 313
17.2 AJAX技术原理简介 314
17.3 AJAX技术的优缺点分析 314
17.4 认识AJAX技术的组成部分 315
17.4.1 AJAX中的JavaScript技术 315
17.4.2 AJAX中的XMLHttpRequest技术 315
17.4.3 AJAX中的CSS技术 315
17.4.4 AJAX中的DOM技术 316
17.4.5 AJAX中的XML技术 316
17.5 XML HttpRequest对象 316
17.5.1 XMLHttpRequest对象简介 316
17.5.2 如何创建XML HttpRequest对象 316
17.6 网页的局部更新 317
17.7 实现AJAX 319
17.7.1 详解实现AJAX的步骤 319
17.7.2 如何创建HTTP请求 319
17.7.3 如何设置HTTP响应回调函数 320
17.7.4 如何发送HTTP请求 320
17.7.5 一个完整的AJAX实例 320
17.8 小结 322
17.9 习题 322
第18章 AJAX的高级应用 327
18.1 客户端脚本语言详解 327
18.1.1 如何使用JavaScript的局部更新技术 327
18.1.2 如何使用iframe的局部更新技术 328
18.2 服务器脚本语言详解 330
18.2.1 掌握改进的iframe局部更新 330
18.2.2 掌握AJAX与服务器的互动技术 331
18.3 小结 333
18.4 习题 333
第19章 JavaScript与插件 337
19.1 掌握ActiveX控件的应用 337
19.1.1 创建ActiveX控件 337
19.1.2 添加ATL控件 339
19.1.3 为控件添加属性 340
19.1.4 为实现类添加成员变量 340
19.1.5 改写相关函数 340
19.1.6 添加事件功能 343
19.1.7 添加事件激发功能 344
19.1.8 编译生成控件 345
19.1.9 使用ActiveX控件 346
19.2 JavaApplet 348
19.2.1 如何安装JDK 348
19.2.2 如何创建JavaApplet 350
19.2.3 如何使用JavaApplet 351
19.3 Flash概述 352
19.3.1 如何创建Flash 352
19.3.2 认识Flash与JavaScript的交互 356
19.4 小结 358
19.5 习题 358
第20章 JavaScript的调试与优化 364
20.1 JavaScript开发工具深入剖析 364
20.2 JavaScript的调试简介 365
20.2.1 如何进行调试前的准备工作 365
20.2.2 如何进行调试 366
20.2.3 如何跟踪代码 367
20.3 对日志进行输出 368
20.4 对代码进行优化 370
20.5 小结 372
20.6 习题 373
第4篇 综合案例篇 375
第21章 捡馅饼游戏 375
21.1 创作思路及基本场景的实现 375
21.1.1 创作思路 375
21.1.2 实现基本场景及用户界面 375
21.2 设计游戏角色 378
21.2.1 馅对象 378
21.2.2 饼对象 379
21.3 游戏进程控制 382
21.3.1 初始化游戏 382
21.3.2 游戏启动控制 382
21.3.3 游戏循环 384
21.3.4 游戏结束控制 385
21.3.5 运行测试 386
21.4 小结 387