第1章 JavaScript简介 1
1.1 学习本书所需的基本知识 2
1.1.1 HTML(超文本标记语言)的基本知识 2
1.1.2 文本编辑器和Web浏览器的基本知识 3
1.1.3 JavaScript语言的不同版本 5
1.2 切记,JavaScript不是Java 5
1.3 与其它语言的相似之处 5
1.4 JavaScript语言简介 7
1.4.1 基于对象(Object Based) 7
1.4.2 客户端(Client Side) 7
1.4.3 脚本语言 8
1.5 用JavaScript语言编写脚本 8
1.6 在线资源 9
项目1-1:使用JavaScript来输出文本 10
1.7 小测验 10
第2章 在HTML文件中添加JavaScript代码 13
2.1 使用HTML语言中的SCRIPT标记 14
2.1.1 定义脚本语言的类型 14
2.1.2 调用外部脚本文件 15
2.1.3 在老版本浏览器中隐藏JavaScript脚本 16
2.2 创建第一个JavaScript脚本 17
2.2.1 编写"Hello World"脚本 17
2.2.2 为你的脚本创建一个HTML文件 18
2.2.3 将你的脚本加入到HTML文件中 18
2.2.4 项目2-1:将JavaScript脚本添加到HTML文件中 20
2.3 用外部文件的方式调用JavaScript脚本 21
2.3.1 创建JavaScript文件 21
2.3.2 创建HTML文件 22
2.3.3 用Web浏览器观看结果 23
2.3.4 项目2-2:在HTML文件中调用JavaScript外部脚本 24
2.4 使用JavaScript注释 25
2.4.1 单行注释 25
2.4.2 多行注释 26
2.5 小测验 27
第3章 JavaScript变量 29
3.1 变量是什么 30
3.2 变量为什么很有用 30
3.2.1 变量是个时间节约器 31
3.2.2 变量是个代码澄清器 31
3.3 在脚本中定义变量 32
3.3.1 变量声明 32
3.3.2 变量赋值 32
3.3.3 变量的命名规则 33
3.4 变量类型 36
3.4.1 数值型 36
3.4.2 字符串型 37
3.4.3 布尔型 42
3.4.4 空值型 43
3.4.5 项目3-1:声明变量 44
3.5 在脚本中使用变量 45
3.5.1 访问变量 45
3.5.2 字符串变量与字符串相加 46
3.6 用JavaScript编写网页 48
3.6.1 搭建框架 48
3.6.2 定义变量 49
3.6.3 添加命令 50
3.6.4 修改网页 51
3.6.5 项目3-2:用JavaScript脚本创建一个HTML网页 52
3.7 小测验 55
第4章 JavaScript函数 57
4.1 什么是函数 58
4.2 函数为什么有用 58
4.3 构造函数 59
4.3.1 声明函数 59
4.3.2 定义函数代码 59
4.3.3 函数命名 60
4.3.4 给函数添加参数 61
4.3.5 给函数添加返回语句 63
4.4 在脚本中调用函数 64
4.4.1 在HEAD部分调用函数 65
4.4.2 在BODY部分调用函数 67
4.4.3 在一个函数中调用另一个函数 70
4.4.4 调用带参数的函数 72
4.4.5 调用带返回语句的函数 76
4.4.6 项目4-1:用函数创建HTML页面 77
4.5 本章小结 78
项目4-2:编写自己的函数 80
4.6 小测验 81
第5章 JavaScript运算符 83
5.1 理解运算符的类型 84
5.2 算术运算符 85
5.2.1 加法运算符(+) 86
5.2.2 减法运算符(-) 88
5.2.3 乘法运算符(*) 88
5.2.4 除法运算符(/) 89
5.2.5 模运算符(%) 90
5.2.6 增量运算符(++) 90
5.2.7 减量运算符(--) 91
5.2.8 一元取反运算符(-) 92
5.3 赋值运算符 93
5.3.1 赋值运算符(=) 93
5.3.2 加赋值运算符(+=) 93
5.3.3 减赋值运算符(-=) 94
5.3.4 乘赋值运算符(*=) 94
5.3.5 除赋值运算符(/=) 95
5.3.6 模赋值运算符(%=) 95
5.3.7 项目5-1:改变一个变量的值 96
5.4 比较运算符 97
5.4.1 等于运算符(==) 97
5.4.2 不等于运算符(!=) 98
5.4.3 大于运算符(>) 98
5.4.4 小于运算符(=) 99
5.4.6 小于等于运算符(<=) 100
5.5 逻辑运算符 100
5.5.1 逻辑与运算符(&&) 101
5.5.2 逻辑或运算符(||) 101
5.5.3 逻辑非运算符(!) 101
5.5.4 位运算符 102
5.6 运算顺序 103
项目5-2:真或假 104
5.7 小测验 105
第6章 条件语句与循环 107
6.1 条件语句的定义 108
6.1.1 条件语句的概念 108
6.1.2 条件语句的原理 108
6.2 条件语句 109
6.2.1 If/Else语句的使用 109
6.2.2 Switch语句的使用 118
6.2.3 项目6-1:创建一个if/else语句段 120
6.3 循环的定义 121
6.3.1 循环的概念 121
6.3.2 循环的原理 121
6.4 循环 122
6.4.1 for循环 122
6.4.2 while循环 130
6.4.3 do while循环 132
6.4.4 项目6-2:使用for循环和while循环 134
6.5 小测验 134
第7章 事件句柄 137
7.1 事件句柄的定义 138
7.1.1 事件句柄的概念 138
7.1.2 事件句柄的作用 138
7.2 事件句柄的位置及其使用 139
7.2.1 事件句柄的位置 139
7.2.2 事件句柄的使用 139
7.2.3 项目7-1:创建一个按钮 142
7.3 事件句柄 142
7.3.1 Click事件(onClick) 143
7.3.2 Mouseover事件(onMouseOver) 145
7.3.3 Mouseout事件(onMouseOut) 146
7.3.4 Load事件(onLoad) 147
7.3.5 Unload事件(onUnload) 147
7.3.6 Focus事件(onFocus) 148
7.3.7 Blur事件(onBlur) 149
7.3.8 Change事件(onChange) 150
7.3.9 Submit事件(onSubmit) 151
7.3.10 项目7-2:通过事件发出警示窗口 152
7.4 其它事件 153
7.4.1 Abort事件(onAbort) 153
7.4.2 Dragdrop事件(onDragDrop) 153
7.4.3 Error事件(onError) 153
7.4.4 Keydown事件(onKeyDown) 154
7.4.5 Keypress事件(onKeyPress) 154
7.4.6 Keyup事件(onKeyUp) 154
7.4.7 Mousedown事件(onMouseDown) 154
7.4.8 Mouseup事件(onMouseUp) 154
7.4.9 Mousemove事件(onMouseMove) 154
7.4.10 Move事件(onMove) 154
7.4.11 Reset事件(onReset) 154
7.4.12 Resize事件(onResize) 155
7.4.13 Select事件(onSelect) 155
7.5 事件句柄的脚本 155
7.5.1 改变状态栏 156
7.5.2 按钮链接 157
7.5.3 项目7-3:窗口状态栏和网址定位的练习 159
7.6 小测验 160
第8章 对象 161
8.1 定义对象 162
8.1.1 什么是对象 162
8.1.2 对象的用途 162
8.2 创建对象 163
8.2.1 命名 163
8.2.2 对象的结构 164
8.2.3 加入方法 173
8.2.4 项目8-1:创建一个computer对象 179
8.3 预定义JavaScript对象 180
8.3.1 Navigator对象 180
8.3.2 项目8-2:练习预定义Navigator对象 184
8.4 小测验 185
第9章 Document对象 187
9.1 Document 对象简介 188
9.2 属性 188
9.2.1 alinkColor属性 189
9.2.2 anchors属性(数组) 191
9.2.3 applet属性(数组) 192
9.2.4 bgColor属性 192
9.2.5 cookie属性 196
9.2.6 domain属性 196
9.2.7 embed属性(数组) 197
9.2.8 The fgColor Property 197
9.2.9 formName属性 198
9.2.10 form属性(数组) 200
9.2.11 image属性(数组) 200
9.2.12 lastModified属性 202
9.2.13 layers属性(数组) 203
9.2.14 all属性 203
9.2.15 linkColor属性 204
9.2.16 links属性(数组) 205
9.2.17 plugins属性(数组) 206
9.2.18 referrer属性 206
9.2.19 title属性 206
9.2.20 URL属性 207
9.2.21 vlinkColor属性 208
9.2.22 项目9-1:用属性创建一个网页 210
9.3 方法 211
9.3.1 open()和close()方法 211
9.3.2 write()方法 214
9.3.3 writeln()方法 214
9.3.4 项目9-2:扩展基本脚本 215
9.4 小测验 216
第10章 Window对象 217
10.1 Window对象简介 218
10.2 属性 218
10.2.1 closed属性 219
10.2.2 defaultStatus属性 219
10.2.3 frames属性(数组) 220
10.2.4 length属性 220
10.2.5 location属性 220
10.2.6 name属性 222
10.2.7 opener属性 223
10.2.8 parent属性 223
10.2.9 self属性 223
10.2.10 status属性 224
10.2.11 top属性 224
10.2.12 项目10-1:运用window对象的location属性 225
10.3 方法 226
10.3.1 alert()方法 226
10.3.2 confirm()方法 227
10.3.3 find()方法 229
10.3.4 print()方法 230
10.3.5 prompt()方法 230
10.3.6 open()方法 233
10.3.7 close()方法 238
10.3.8 blur()方法 238
10.3.9 focus()方法 239
10.3.10 moveBy()方法 240
10.3.11 moveTo()方法 241
10.3.12 resizeBy()方法 243
10.3.13 resizeTo()方法 243
10.3.14 scrollBy()方法 243
10.3.15 scrollTo()方法 243
10.3.16 setInterval()方法 243
10.3.17 clearInterval()方法 244
10.3.18 setTimeout()方法 245
10.3.19 cleanTimeout()方法 246
10.3.20 项目10-2:创建一个新窗口 247
10.4 小测验 248
第11章 JavaScript数组 251
11.1 数组的含义 252
11.1.1 何为数组 252
11.1.2 为何数组很有用处 252
11.2 定义和访问数组 254
11.2.1 数组命名 254
11.2.2 定义数组 254
11.2.3 访问数组 254
11.2.4 定义数组的其它方法 256
11.3 Array对象的属性和方法 258
11.3.1 属性 258
11.3.2 方法 261
11.4 数组与循环 269
11.4.1 创建数组元素 270
11.4.2 逐个访问数组元素 271
11.4.3 项目11-1:关于数组的循环应用 276
11.5 关联数组 276
11.5.1 定义关联数组 276
11.5.2 访问关联数组 277
11.5.3 项目11-2:使用关联数组 278
11.6 小测验 279
第12章 数学和日期对象 281
12.1 数学对象 282
12.1.1 什么是数学对象 282
12.1.2 数学对象的用途 282
12.2 数学对象的属性 282
12.2.1 E属性 283
12.2.2 LN10属性 283
12.2.3 LN2属性 284
12.2.4 LOG10E属性 284
12.2.5 LOG2E属性 285
12.2.6 PI属性 285
12.2.7 SQRT2属性 285
12.2.8 SQRT1_2属性 286
12.3 数学对象的方法 286
12.3.1 基本方法 287
12.3.2 双参数方法 289
12.3.3 其它方法 292
12.3.4 random()方法 293
12.3.5 项目12-1:在页面上显示一个随机链接 298
12.4 日期对象 299
12.4.1 属性 299
12.4.2 方法 300
12.4.3 获取当前日期和时间的方法 301
12.4.4 对日期时间进行设置的方法 303
12.4.5 其它方法 304
12.4.6 日期对象脚本文件 305
12.4.7 项目12-2:用JavaScript创建一个时钟 308
12.5 小测验 308
第13章 字符串处理 311
13.1 字符串对象简介 312
13.1.1 字符串对象 312
13.1.2 字符串变量 312
13.1.3 字符串对象和字符串变量的区别 313
13.2 字符串对象的属性 314
13.2.1 constructor属性 314
13.2.2 length属性 315
13.2.3 prototype属性 316
13.3 字符串对象的方法 316
13.3.1 anchor()方法 317
13.3.2 big()方法 318
13.3.3 blink()方法 319
13.3.4 bold()方法 320
13.3.5 charAt()方法 320
13.3.6 charCodeAt()方法 321
13.3.7 concat()方法 321
13.3.8 fixed()方法 322
13.3.9 fontcolor()方法 322
13.3.10 fontsize()方法 323
13.3.11 fromCharCode()方法 324
13.3.12 indexOf()方法 324
13.3.13 italics()方法 325
13.3.14 lastIndexOf()方法 326
13.3.15 link()方法 326
13.3.16 match()方法 327
13.3.17 replace()方法 328
13.3.18 search()方法 328
13.3.19 slice()方法 328
13.3.20 small()方法 328
13.3.21 split()方法 329
13.3.22 strike()方法 330
13.3.23 sub()方法 330
13.3.24 substr()方法 330
13.3.25 substring()方法 331
13.3.26 sup()方法 331
13.3.27 toString()方法 332
13.3.28 toLowerCase()方法 332
13.3.29 toUpperCase ()方法 332
13.3.30 项目13-1:用charAt()方法得到字符串的第一个字符 333
13.4 字符串对象属性和方法应用举例 334
项目13-2:用indexOf()检查用户输入的E-mail地址是否合法 336
13.5 小测验 337
第14章 JavaScript与表单 339
14.1 表单存取 340
14.1.1 使用表单数组存取表单 340
14.1.2 使用表单名存取表单 344
14.2 表单对象的属性和方法 345
14.2.1 属性 345
14.2.2 方法 357
14.3 有效性检查 358
14.3.1 onSubmit和return语句 359
14.3.2 技巧 361
14.3.3 项目14-1:检查时间输入是否有效的程序 363
14.4 使用表单导航 363
14.4.1 选择框导航 363
14.4.2 单选按钮导航 366
14.4.3 项目14-2:使用选择框导航的程序 367
14.5 小测验 368
第15章 JavaScript和框架 369
15.1 框架简介 370
15.1.1 框架的用途 370
15.1.2 框架组举例 370
15.1.3 框架的选项 372
15.2 框架的存取 375
15.2.1 使用frames数组存取框架 375
15.2.2 使用名字存取框架 378
15.3 改变框架的内容 380
15.3.1 改变一个框架的内容 380
15.3.2 同时改变多个框架的内容 381
15.3.3 项目15-1:改变框架的内容 384
15.4 使用框架导航 385
15.4.1 在框架中使用选择框 385
15.4.2 不显示框架 386
15.4.3 使页面在框架中显示 388
15.5 在不同的框架中使用变量 389
项目15-2:变量 394
15.6 小测验 394
第16章 先进技术的介绍 397
16.1 XML和XHTML 398
16.1.1 XML 对你的编码将会产生什么影响 398
16.1.2 如何获得更多XML和XHTML的知识 401
16.2 调试脚本中的错误 401
16.2.1 错误的类型 401
16.3 规范表达式 407
16.3.1 生成规范表达式 407
16.3.2 用规范表达式测试字符串 408
16.3.3 添加标志 409
16.3.4 建立强大的模型 410
16.3.5 替换信息 414
16.3.6 项目16-1:验证一个网站地址 416
16.4 小甜饼(Cookies) 416
16.4.1 建立一个cookie 417
16.4.2 读cookie 419
16.4.3 项目16-2:记忆一个名称 422
16.5 小测验 423
第17章 更多先进技术的介绍 425
17.1 图像 426
17.1.1 预下载 426
17.1.2 滚动效果 428
17.1.3 项目17-1:建立一个图像导航系统 441
17.2 DHTML简介 441
17.2.1 层叠式页面 442
17.2.2 移动元素 446
17.2.3 缓慢移动对象 449
17.3 JavaScript的安全性 451
17.3.1 安全性和脚本签名 451
17.3.2 网页保护 451
17.3.3 项目17-2:使用DHTML缓慢移动对象 452
17.4 小测验 453
附录 小测验答案 455