标题：21天学通JavaScript
《21天学通JavaScript》
作　者：杨贵 杨兴 等编著 出 版 社： 电子工业出版社出版时间： 2009-1-1页　数：416页开　本： 16开ISBN 9787121078996分类： 图书 >> 计算机/web开发>> JavaScript定价：￥49.80元（含DVD光盘1张）
宣传语
 基础知识核心技术典型实例综合练习项目案例
 242个典型实例、1个项目案例、333个练习题
 一线开发人员全程贴心讲解，上手毫不费力
 23个小时多媒体语音视频教学
 本书源代码 + 本书电子教案（PPT）
 1000余页编程参考宝典电子书（免费赠送）
内 容 简 介
第一篇完整地讲解了JavaScript的基础知识，主要内容包括JavaScript概述、数据类型、常量与变量、表达式与运算符、程序语句、函数和数组等。第二篇专门介绍JavaScript中内置对象的应用，内容包括JavaScript对象基础、窗口和框架、屏幕和浏览器对象、文档对象、历史对象和地址对象、表单对象和表单元素和脚本化cookie等。第三篇讲解的是JavaScript的高级技术，主要讲解了JavaScript与XML技术、正则表达式、Ajax基础、Ajax高级应用、JavaScript与插件和JavaScript的调试与优化等。最后一篇综合案例篇用一个完整的例子讲解了如何使用JavaScript进行大型应用开发。
本书附赠DVD光盘1张，内容包括超大容量手把手视频、电子教案（PPT）、编程参考宝典电子书、源代码及各章习题答案。
本书特点
千里之行，始于足下！
——老子 
为什么要写这样一本书
学习任何一门编程语言，最好的开始是找到一本适合自己的书，本书是为JavaScript初级读者量身定做的入门书籍。目前市面上有关JavaScript的书籍已经不少，但笔者还没有发现一本讲解全面、细致、深入、易懂，适合初学者入门的好书。此类书籍大都仅仅讲解JavaScript部分内容，从而使读者知其一不知其二，有如身在雾里，在面临实际开发问题时难以应付。
基于上述现状，笔者结合自己多年各类编程语言学习经验和开发经验，写了这本书。通过21天学习规划，使本来就轻松易学的JavaScript变得更容易掌握，并且使读者全面接触到JavaScript。
本书有何特色
1．细致体贴的讲解
为了让读者更快地上手，本书特别设计了适合初学者的学习方式，用准确的语言总结概念#用直观的图示演示过程#用详细的注释解释代码#用形象的比方帮助记忆。效果如下：
1）知识点介绍 准确、清晰是其显著特点，一般放在每一节开始位置，让零基础的读者了解相关概念，顺利入门。
2）范例 书中出现的完整实例，以章节顺序编号，便于检索和循序渐进地学习、实践，放在每节知识点介绍之后。
3）范例代码 与范例编号对应，层次清楚、语句简洁、注释丰富，体现了代码优美的原则，有利于读者养成良好的代码编写习惯。对于大段程序，均在每行代码前设定编号便于学习。
4）运行结果 对范例给出运行结果和对应图示，帮助读者更直观地理解范例代码。
5）代码解析 将范例代码中的关键代码行逐一解释，有助于读者掌握相关概念和知识。
6）综合练习 为了便于读者巩固所学内容，本书每章中均提供了综合练习，并给出了操作提示和结果，配合读者自己动手实践。
7）习题 每章最后提供专门的测试习题，供读者检验所学知识是否牢固掌握，题目的提示或答案放在光盘中。
8）贴心的提示 为了便于读者阅读，全书还穿插着一些技巧、提示等小贴士，体例约定如下：
— 提示：通常是一些贴心的提醒，让读者加深印象或提供建议，或者解决问题的方法。
— 注意：提出学习过程中需要特别注意的一些知识点和内容，或者相关信息。
— 警告：对操作不当或理解偏差将会造成的灾难性后果做警示，以加深读者印象。
经作者多年的培训和授课证明，以上讲解方式是最适合初学者学习的方式，读者按照这种方式，会非常轻松、顺利地掌握本书知识。
2．实用超值的DVD光盘
为了帮助读者比较直观地学习，本书附赠DVD光盘，内容包括多媒体视频、电子教案（PPT）、编程参考宝典电子书、各章习题答案和实例源代码等。
多媒体视频
赠送1.51GB，长达23小时手把手教学视频，讲解关键知识点界面操作和书中的一些综合练习题。作者亲自配音、演示，手把手教会读者使用。
电子教案（PPT）
本书可以作为高校相关课程的教材或课外辅导书，所以笔者特别为本书制作了电子教案（PPT），以方便老师教学使用。
编程参考宝典电子书
为方便广大读者学习，特别制作了编程开发参考电子书，供读者查阅和参考。
3．提供完善的技术支持
本书提供了论坛，读者可以在上面提问交流。另外，论坛上还有一些小的教程、视频动画和各种技术文章，可帮助读者提高开发水平。
4．丰富的额外素材下载
相关的开发素材文件。
推荐的学习计划
本书作者在长期从事相关培训或教学实践过程中，归纳了最适合初学者的学习模式，并参考了多位专家的意见，为读者总结了合理的学习时间分配方式，
本书作者 
2009年1月
读者对象
本书非常适合以下人员阅读。
— 打算进入JavaScript编程大门的新手；
— Web开发的前沿程序员；
— 各大中专院校的在校学生和相关授课老师；
— 其他编程爱好者。
目 录
第一篇 JavaScript基础篇
第1章 JavaScript概述（精彩视频：60分钟） 21
1.1 JavaScript背景知识 21
1.1.1 JavaScript的历史 21
1.1.2 制定标准 22
1.1.3 JavaScript现况 22
1.1.4 JavaScript的未来 23
1.2 简单的脚本语言 23
1.2.1 什么是脚本语言 23
1.2.2 脚本语言的分类 23
1.2.3 JavaScript能做什么 24
1.2.4 JavaScript和其他语言的异同 24
1.2.5 JavaScript同Java的异同 24
1.3 第一个JavaScript程序 24
1.3.1 预备知识 25
1.3.2 JavaScript编辑器的选择 26
1.3.3 编写“Hello World”程序 27
1.3.4 浏览器对JavaScript的支持 28
1.4 注意事项 28
1.4.1 大小写敏感 29
1.4.2 空格与换行 29
1.4.3 可有可无的分号 30
1.5 综合练习 30
1.6 小结 31
1.7 习题 31
第2章 数据类型（精彩视频：72分钟） 33
2.1 基本数据类型 33
2.1.1 使用字符串型数据 33
2.1.2 进一步理解字符串 34
2.1.3 使用数值型数据 35
2.1.4 使用布尔型数据 37
2.2 复合数据类型 38
2.2.1 常用的内置对象 38
2.2.2 日期对象 39
2.2.3 全局对象 41
2.2.4 数学对象 42
2.2.5 字符串对象 44
2.2.6 数组对象 45
2.3 其他数据类型 46
2.3.1 函数 47
2.3.2 空值 47
2.3.3 不确定的类型 48
2.4 数据类型的转换 49
2.4.1 隐式类型转换 49
2.4.2 显式类型转换 50
2.5 综合练习 51
2.6 小结 53
2.7 习题 54
第3章 变量和常量（精彩视频：47分钟） 56
3.1 常量 56
3.1.1 常量的种类 56
3.1.2 常量的使用方法 56
3.2 变量 57
3.2.1 什么是变量 57
3.2.2 变量的定义方式 58
3.2.3 变量的命名规则 59
3.2.4 变量的作用范围 61
3.2.5 变量的用途 61
3.3 JavaScript关键字 62
3.4 综合练习 63
3.5 小结 64
3.6 习题 64
第4章 表达式与运算符（精彩视频：90分钟） 67
4.1 表达式 67
4.2 操作数 68
4.3 运算符介绍 69
4.3.1 运算符 69
4.3.2 操作数的类型 69
4.4 算术运算符 70
4.4.1 加法运算符 70
4.4.2 减法运算符 70
4.4.3 乘法运算符 71
4.4.4 除法运算符 72
4.4.5 取模运算符 72
4.4.6 负号运算符 73
4.4.7 正号运算符 74
4.4.8 递增运算符 74
4.4.9 递减运算符 75
4.5 关系运算符 76
4.5.1 相等运算符 76
4.5.2 等同运算符 77
4.5.3 不等运算符 78
4.5.4 不等同运算符 79
4.5.5 小于运算符 79
4.5.6 大于运算符 80
4.5.7 小于或等于运算符 81
4.5.8 大于或等于运算符 82
4.5.9 in运算符 82
4.5.10 instanceof运算符 83
4.6 字符串运算符 84
4.7 赋值运算符 84
4.8 逻辑运算符 85
4.8.1 逻辑与运算符 85
4.8.2 逻辑或运算符 86
4.8.3 逻辑非运算符 86
4.9 位运算符 87
4.9.1 位与运算符 87
4.9.2 位或运算符 88
4.9.3 位异或运算符 88
4.9.4 位非运算符 89
4.9.5 左移运算符 90
4.9.6 带符号右移运算符 91
4.9.7 高位补0右移运算符 91
4.10 其他运算符 91
4.10.1 条件运算符 92
4.10.2 new运算符 92
4.10.3 void运算符 92
4.10.4 类型检测运算符 93
4.10.5 对象属性存取运算符 93
4.10.6 数组存取运算符 94
4.10.7 delete运算符 94
4.10.8 逗号运算符 95
4.10.9 函数调用运算符 95
4.10.10 this运算符 96
4.11 运算符的优先级 97
4.12 综合练习 98
4.13 小结 100
4.14 习题 100
第5章 控制语句（精彩视频：70分钟） 103
5.1 选择语句 103
5.1.1 if语句 103
5.1.2 if-else语句 105
5.1.3 if-else-if语句 106
5.1.4 switch语句 107
5.1.5 选择语句综合示例 108
5.2 循环语句 110
5.2.1 for语句 110
5.2.2 while语句 111
5.2.3 do-while语句 112
5.2.4 for-in语句 113
5.2.5 break和continue语句 113
5.2.6 循环语句综合示例 114
5.3 异常处理语句 115
5.3.1 try-catch语句 115
5.3.2 try-catch-finally语句 116
5.3.3 throw语句 117
5.3.4 异常处理语句综合示例 118
5.4 综合练习 119
5.5 小结 122
5.6 习题 123
第6章 函数（精彩视频：69分钟） 125
6.1 函数的功能 125
6.2 函数的定义 125
6.2.1 函数的普通定义方式 125
6.2.2 函数的变量定义方式 128
6.2.3 函数的指针调用方式 129
6.2.4 函数的参数 130
6.2.5 关于arguments对象 130
6.3 函数的返回类型 131
6.3.1 值类型 131
6.3.2 引用类型 132
6.3.3 返回函数 132
6.4 函数的分类 132
6.4.1 构造函数 133
6.4.2 有返回值的函数 133
6.4.3 无返回值的函数 133
6.5 函数的作用域 133
6.5.1 公有函数 134
6.5.2 私有函数 134
6.5.3 this关键字 135
6.6 综合练习 136
6.7 小结 139
6.8 习题 140
第7章 数组（精彩视频：65分钟） 142
7.1 数组介绍 142
7.1.1 数组的概念 142
7.1.2 数组元素 142
7.1.3 多维数组 143
7.2 创建数组 143
7.2.1 创建一个空数组 143
7.2.2 通过指定数组长度创建数组 143
7.2.3 通过指定数组元素创建数组 144
7.2.4 直接创建数组 144
7.3 数组元素的基本操作 144
7.3.1 读取数组元素 145
7.3.2 添加数组元素 145
7.3.3 删除数组元素 145
7.3.4 数组元素的个数 145
7.4 数组对象常见的操作 146
7.4.1 将数组转换为字符串 146
7.4.2 将数组元素连接成字符串 146
7.4.3 在数组尾部添加元素 147
7.4.4 删除数组的最后一个元素 148
7.4.5 移除数组顶端的元素 149
7.4.6 在数组头部添元素 150
7.4.7 添加元素并生成新数组 151
7.4.8 删除、替换或插入数组元素 152
7.4.9 获取数组中的一部分元素 153
7.4.10 颠倒数组元素的顺序 154
7.4.11 对数组元素进行排序 155
7.4.12 将对象转换为本地字符串 156
7.5 综合练习 157
7.6 小结 159
7.7 习题 159
第二篇 JavaScript对象篇
第8章 JavaScript面向对象基础（精彩视频：44分钟） 161
8.1 面向对象术语 161
8.1.1 面向对象的语言要求 161
8.1.2 对象的构成 162
8.2 对象应用 162
8.2.1 声明和实例化 162
8.2.2 对象的引用 164
8.2.3 对象的废除 164
8.2.4 对象的早绑定和晚绑定 165
8.3 JavaScript的对象层次 165
8.3.1 JavaScript对象模型 165
8.3.2 客户端对象层次介绍 166
8.3.3 浏览器对象模型 166
8.4 事件驱动与事件处理 167
8.4.1 事件与事件驱动 167
8.4.2 事件与处理代码关联 168
8.4.3 调用函数的事件 169
8.4.4 调用代码的事件 170
8.4.5 设置对象事件的方法 170
8.4.6 显式调用事件处理程序 172
8.4.7 事件处理程序的返回值 172
8.4.8 事件与this运算符 174
8.5 常用的事件 175
8.5.1 浏览器与事件 175
8.5.2 鼠标移动事件 175
8.5.3 鼠标单击事件 175
8.5.4 加载与卸载事件 176
8.5.5 得到焦点与失去焦点事件 176
8.5.6 键盘事件 176
8.5.7 提交与重置事件 177
8.5.8 选择与改变事件 178
8.6 综合练习 179
8.7 小结 180
8.8 习题 180
第9章 窗口和框架（精彩视频：71分钟） 182
9.1 window对象 182
9.1.1 window对象介绍 182
9.1.2 window对象的使用方法 182
9.2 window对象事件及使用方法 183
9.2.1 装载文档 184
9.2.2 卸载文档 184
9.2.3 得到焦点与失去焦点 185
9.2.4 调整窗口的大小 186
9.2.5 错误处理 187
9.3 对话框 188
9.3.1 警告对话框 188
9.3.2 询问对话框 189
9.3.3 输入对话框 189
9.4 状态栏 190
9.4.1 状态栏介绍 191
9.4.2 默认状态栏信息 191
9.4.3 状态栏瞬间信息 191
9.5 窗口操作 192
9.5.1 打开新窗口 192
9.5.2 窗口名字 193
9.5.3 关闭窗口 194
9.5.4 窗口的引用 195
9.5.5 滚动文档 196
9.6 超时与时间间隔 197
9.6.1 延迟代码执行 197
9.6.2 周期性执行代码 198
9.6.3 停止周期性执行代码 199
9.6.4 取消延迟执行 200
9.7 框架操作 201
9.7.1 框架介绍 201
9.7.2 父窗口与子窗口 201
9.7.3 窗口之间的关系 202
9.7.4 窗口名字 203
9.8 综合练习 203
9.9 小结 204
9.10 习题 205
第10章 屏幕和浏览器对象（精彩视频：60分钟） 207
10.1 屏幕对象 207
10.1.1 检测显示器参数 207
10.1.2 客户端显示器屏幕分辨率 208
10.1.3 客户端显示器屏幕的有效宽度和高度 209
10.1.4 网页开屏 210
10.2 浏览器对象 211
10.2.1 获取浏览器对象的属性值 211
10.2.2 MimeType对象和Plugin对象 212
10.2.3 浏览器对象的javaEnabled 213
10.3 综合练习 214
10.4 小结 215
10.5 习题 215
第11章 文档对象（精彩视频：84分钟） 217
11.1 文档对象概述 217
11.1.1 文档对象介绍 217
11.1.2 文档对象的使用方法 217
11.1.3 引用标签中的值 218
11.1.4 引用文档中对象的方法 219
11.2 文档对象的应用 220
11.2.1 设置超链接的颜色 221
11.2.2 设置网页背景颜色和默认文字颜色 221
11.2.3 文档信息 223
11.2.4 在标题栏中显示滚动信息 223
11.2.5 防止盗链 224
11.2.6 在网页中输出内容 225
11.2.7 在其他文档中输出内容 226
11.2.8 输出非HTML文档 227
11.2.9 文档中的所有HTML元素 228
11.2.10 引用文档中的HTML元素 229
11.2.11 引用文档元素中的子元素 230
11.3 图像对象 232
11.3.1 图像对象介绍 232
11.3.2 创建和使用图像对象 232
11.3.3 图像对象的onerror事件 233
11.3.4 显示图片的信息 234
11.3.5 置换图片 235
11.3.6 随机图片 236
11.3.7 动态改变图片大小 237
11.4 链接对象 238
11.4.1 链接对象的介绍 239
11.4.2 感知鼠标移动事件 239
11.4.3 查看一个网页上的所有超链接 239
11.4.4 翻页程序 241
11.4.5 网站目录 243
11.5 锚对象 244
11.5.1 锚对象介绍 244
11.5.2 锚对象与链接对象的区别 245
11.5.3 创建文档索引 246
11.6 综合练习 247
11.7 小结 250
11.8 习题 250
第12章 历史对象和地址对象（精彩视频：50分钟） 253
12.1 历史对象 253
12.1.1 历史对象的介绍 253
12.1.2 前进到上一页和后退到下一页 253
12.1.3 跳转 255
12.2 地址对象 256
12.2.1 URL介绍 256
12.2.2 获取指定地址的各属性值 256
12.2.3 加载新网页 257
12.2.4 获取参数 258
12.2.5 装载新文档与重新装载当前文档 259
12.2.6 刷新文档 260
12.2.7 加载新文档 261
12.3 综合练习 262
12.4 小结 263
12.5 习题 263
第13章 表单对象和表单元素（精彩视频：65分钟） 265
13.1 表单对象概述 265
13.1.1 表单对象介绍 265
13.1.2 大小写的转换 265
13.1.3 提交表单和重置表单 267
13.1.4 响应表单的提交和重置 268
13.2 表单对象的应用 269
13.2.1 表单验证 269
13.2.2 循环验证表单 270
13.2.3 设置表单的提交方式 272
13.2.4 重置表单的提示 273
13.2.5 不使用提交按钮提交表单 274
13.3 表单元素 275
13.3.1 表单元素概述 276
13.3.2 表单元素的命名 276
13.4 文本框 277
13.4.1 文本框的创建方式 277
13.4.2 查看一个文本框的属性值 278
13.4.3 动态跟踪文本框中输入的文字个数 279
13.4.4 限制文本框中输入的字数 279
13.4.5 自动选择文本框中的文字 280
13.5 按钮 281
13.5.1 按钮介绍 281
13.5.2 按钮创建方式 281
13.5.3 网页调色板 282
13.5.4 改变多行文本框大小 283
13.6 综合练习 284
13.7 小结 286
13.8 习题 286
第14章 脚本化cookie（精彩视频：60分钟） 289
14.1 cookie介绍 289
14.1.1 什么是cookie 289
14.1.2 cookie的作用和检测用户浏览器是否支持cookie 289
14.2 创建与读取cookie 290
14.3 获取cookie的值 291
14.4 cookie的编码 292
14.5 cookie的生存期 295
14.6 cookie的路径和域 296
14.7 cookie的安全性 297
14.8 使用cookie的注意事项 299
14.9 综合练习 299
14.10 小结 303
14.11 习题 303
第三篇 JavaScript高级技术篇
第15章 JavaScript与XML技术（精彩视频：85分钟） 305
15.1 XML简介 305
15.1.1 针对XML的API 305
15.1.2 节点的层次 305
15.1.3 特定语言的文档模型 306
15.2 使用DOM 306
15.2.1 访问相关的节点 307
15.2.2 检测节点的类型 308
15.2.3 处理节点属性 309
15.2.4 访问指定节点 311
15.2.5 创建新节点 312
15.2.6 修改节点 313
15.3 HTML DOM特性 314
15.3.1 让特性像属性一样 314
15.3.2 表格相关特性 315
15.4 遍历DOM文档 316
15.4.1 文档节点迭代器 316
15.4.2 遍历文档树 318
15.5 测试与DOM标准的一致性 319
15.6 综合练习 320
15.7 小结 321
15.8 习题 322
第16章 正则表达式（精彩视频：41分钟） 324
16.1 正则表达式基础 324
16.1.1 为什么使用正则表达式 324
16.1.2 使用RegExp对象 324
16.2 简单模式 325
16.2.1 元字符 325
16.2.2 量词 326
16.3 复杂模式 327
16.3.1 分组 328
16.3.2 候选 328
16.3.3 非捕获性分组 329
16.3.4 前瞻 329
16.4 常用模式 331
16.4.1 验证日期 331
16.4.2 验证电子邮件地址 332
16.5 综合练习 333
16.6 小结 336
16.7 习题 336
第17章 Ajax基础（精彩视频：68分钟） 338
17.1 传统的Web技术及Ajax的由来 338
17.2 Ajax技术原理 339
17.3 Ajax技术的优缺点 339
17.4 Ajax技术的组成部分 340
17.4.1 Ajax中的JavaScript 340
17.4.2 Ajax中的XMLHttpRequest 340
17.4.3 Ajax中的CSS 340
17.4.4 Ajax中的DOM 341
17.4.5 Ajax中的XML 341
17.5 XMLHttpRequest对象 341
17.5.1 XMLHttpRequest的介绍 341
17.5.2 XMLHttpRequest创建 341
17.6 局部更新 342
17.7 实现Ajax 344
17.7.1 实现Ajax的步骤 344
17.7.2 创建HTTP请求 344
17.7.3 设置HTTP响应回调函数 345
17.7.4 发送HTTP请求 345
17.7.5 一个完整的Ajax实例 345
17.8 综合练习 347
17.9 小结 350
17.10 习题 350
第18章 Ajax高级应用（精彩视频：65分钟） 352
18.1 客户端脚本语言 352
18.1.1 使用JavaScript的局部刷新技术 352
18.1.2 使用iframe的局部刷新技术 353
18.2 服务器脚本语言 355
18.2.1 改进的iframe局部刷新 355
18.2.2 Ajax与服务器互动 356
18.3 综合练习 358
18.4 小结 360
18.5 习题 361
第19章 JavaScript与插件（精彩视频：96分钟） 363
19.1 ActiveX控件 363
19.1.1 开始创建ActiveX控件 363
19.1.2 添加ATL控件 364
19.1.3 为控件添加属性 365
19.1.4 为实现类添加成员变量 366
19.1.5 改写相关函数 366
19.1.6 添加事件功能 368
19.1.7 添加事件激发功能 370
19.1.8 编译生成控件 371
19.1.9 使用ActiveX控件 372
19.2 JavaApplet 374
19.2.1 安装JDK 374
19.2.2 创建Applet 375
19.2.3 使用Applet 376
19.3 Flash 377
19.3.1 创建Flash 377
19.3.2 Flash与JavaScript的交互 380
19.4 综合练习 382
19.5 小结 387
19.6 习题 387
第20章 JavaScript的调试与优化（精彩视频：57分钟） 389
20.1 JavaScript开发工具 389
20.2 JavaScript的调试 390
20.2.1 调试前的准备工作 390
20.2.2 开始调试 390
20.2.3 跟踪代码 392
20.3 日志输出 393
20.4 代码优化 395
20.5 综合练习 397
20.6 小结 398
20.7 习题 398
第四篇 综合案例篇
第21章 捡馅饼游戏（精彩视频：63分钟） 400
21.1 创作思路及基本场景的实现 400
21.1.1 创作思路 400
21.1.2 实现基本场景及用户界面 400
21.2 设计游戏角色 403
21.2.1 馅对象 403
21.2.2 饼对象 404
21.3 游戏进程控制 406
21.3.1 初始化游戏 406
21.3.2 游戏启动控制 407
21.3.3 游戏循环 408
21.3.4 游戏结束控制 409
21.3.5 运行测试 410
21.4 小结 411