第1章 JavaScript简介 1
1.1预备知识 2
1.1.1HTML和CSS基础知识 2
1.1.2文本编辑器和Web浏览器基础知识 3
1.1.3版本 5
1.1.4与Java的区别 5
1.1.5与其他语言的相似之处 5
1.2开始学习JavaScript 7
1.2.1基于原型 7
1.2.2客户端 7
1.2.3脚本语言 8
1.3汇总 8
1.4在线资源 9
1.5动手尝试1-1:使用JavaScript输出文本 9
1.6自测题 10
第2章 在HTML文件中添加JavaScript 13
2.1使用HTML脚本标记 14
2.1.1识别脚本语言 14
2.1.2调用外部脚本 15
2.1.3指定脚本加载时间 15
2.1.4使用<noscript></noscript>标记 16
2.2创建第一个脚本 17
2.2.1编写“Hello World”脚本 18
2.2.2为脚本创建HTML文档 18
2.2.3在HTML文档中插入脚本 19
2.3动手尝试2-1:在HTML文档中插入脚本 20
2.4使用外部JavaScript文件 21
2.4.1创建JavaScript文件 21
2.4.2创建HTML文件 22
2.4.3在浏览器中查看页面 23
2.5动手尝试2-2:从HTML文档调用外部脚本 24
2.6使用JavaScript注释 24
2.6.1添加单行注释 25
2.6.2添加多行注释 25
2.7自测题 26
第3章 使用变量 29
3.1变量简介 30
3.2变量的作用 30
3.2.1用作未知值的占位符 30
3.2.2节省编程时间 31
3.2.3使代码更清晰 31
3.3定义变量 31
3.3.1声明变量 31
3.3.2变量赋值 32
3.3.3命名变量 33
3.4数据类型 35
3.4.1数字 36
3.4.2字符串 36
3.4.3布尔类型 40
3.4.4null 41
3.4.5undefined 41
3.5动手尝试3-1:声明变量 42
3.6在脚本中使用变量 43
3.6.1访问变量 43
3.6.2将变量添加到文本字符串中 43
3.7编写JavaScript页面 44
3.7.1创建框架 45
3.7.2定义变量 45
3.7.3添加命令 46
3.7.4修改页面 47
3.8动手尝试3-2:创建使用JavaScript的HTML文档 48
3.9自测题 50
第4章 使用函数 53
4.1函数的定义 54
4.2函数的作用 54
4.3构建函数 55
4.3.1声明函数 55
4.3.2定义函数代码 55
4.3.3命名函数 56
4.3.4添加函数参数 57
4.3.5添加函数返回语句 58
4.4在脚本中调用函数 59
4.4.1script标记:头部分或主体部分 60
4.4.2嵌套调用函数 62
4.4.3调用包含参数的函数 64
4.4.4调用包含return语句的函数 67
4.4.5定义函数的其他方式 68
4.5动手尝试4-1:创建包含函数的HTML页面 71
4.6作用域/上下文基础知识 72
4.6.1全局上下文 72
4.6.2函数上下文 73
4.7动手尝试4-2:编写自己的函数 74
4.8自测题 75
第5章 JavaScript运算符 77
5.1理解运算符类型 78
5.2理解算术运算符 78
5.2.1加法运算符(+) 79
5.2.2减法运算符(-) 82
5.2.3乘法运算符(*) 83
5.2.4除法运算符(/) 83
5.2.5取模运算符(%) 84
5.2.6自增运算符(+++) 84
5.2.7自减运算符 85
5.2.8一元加运算符(+) 86
5.2.9一元减运算符(-) 86
5.3理解赋值运算符 87
5.3.1赋值运算符 87
5.3.2加法赋值运算符 88
5.3.3减法赋值运算符 88
5.3.4乘法赋值运算符 89
5.3.5除法赋值运算符 89
5.3.6取模赋值运算符 89
5.4动手尝试5-1:修改变量值 89
5.5理解比较运算符 90
5.5.1相等运算符(==) 91
5.5.2不等运算符(!=) 92
5.5.3恒等运算符(===) 93
5.5.4非恒等运算符(!==) 93
5.5.5大于运算符(>) 93
5.5.6小于运算符(<) 94
5.5.7大于等于运算符(>=) 94
5.5.8小于等于运算符 95
5.6理解逻辑运算符 95
5.6.1逻辑与运算(&&) 96
5.6.2逻辑或运算符(││) 96
5.6.3逻辑非运算符(!) 96
5.6.4位运算符 97
5.7特殊运算符 97
5.8理解运算符的执行顺序 98
5.9动手尝试5-2:true还是false 99
5.10自测题 100
第6章 条件语句和循环 103
6.1条件语句的定义 104
6.1.1条件语句的定义 104
6.1.2条件语句的作用 104
6.2条件语句的使用 105
6.2.1使用if/else语句 105
6.2.2使用switch语句 112
6.2.3使用条件运算符 114
6.2.4提示框中获得的用户输入 115
6.3动手尝试6-1:处理用户的输入 117
6.4定义循环 118
6.4.1循环的定义 118
6.4.2循环的作用 119
6.5使用循环 119
6.5.1for 119
6.5.2while 126
6.5.3do while循环 128
6.5.4for in和for each in循环 128
6.5.5使用break和continue 128
6.6动手尝试6-2:使用for循环和while循环 130
6.7自测题 132
第7章 JavaScript数组 135
7.1数组的定义 136
7.2数组的作用 136
7.3定义和访问数组 137
7.3.1命名数组 137
7.3.2定义数组 137
7.3.3访问数组元素 138
7.3.4使用length属性和循环 139
7.3.5修改数组元素值和数组长度 141
7.4动手尝试7-1:使用循环遍历数组 142
7.5数组属性和方法 143
7.5.1属性 143
7.5.2方法 144
7.6嵌套数组 157
7.6.1定义嵌套数组 157
7.6.2循环和嵌套数组 158
7.7动手尝试7-2:嵌套数组练习 160
7.8自测题 161
第8章 对象 163
8.1定义对象 164
8.2创建对象 164
8.2.1命名 164
8.2.2单一对象 164
8.3动手尝试8-1:创建computer对象 168
8.4对象结构 168
8.4.1构造函数 169
8.4.2使用原型 173
8.5帮助访问对象的语句 176
8.5.1 for-in循环 176
8.5.2 with语句 177
8.6动手尝试8-2:练习使用构造函数/原型结合模式 178
8.7理解JavaScript预定义对象 179
8.7.1 navigator对象 180
8.7.2 history对象 182
8.8自测题 183
第9章 document对象 185
9.1定义document对象 186
9.2使用文档对象模型 186
9.3使用document对象的属性 187
9.3.1集合 189
9.3.2 cookie属性 189
9.3.3 dir属性 190
9.3.4 lastModified属性 190
9.3.5 referrer属性 191
9.3.6 title属性 191
9.3.7 URL属性 192
9.3.8 URLUnencoded属性 192
9.4使用document对象的方法 193
9.4.1针对元素的get方法 195
9.4.2 open()和close()方法 197
9.4.3 write()和writeln()方法 199
9.5使用DOM节点 200
9.5.1 DOM节点属性 200
9.5.2 DOM节点方法 202
9.6动手尝试9-1:向文档中添加DOM节点 206
9.7创建动态脚本 207
9.7.1 JavaScript中的样式 207
9.7.2简单事件处理 208
9.7.3编写动态脚本 209
9.8动手尝试9-2:尝试修改属性 211
9.9自测题 212
第10章 事件处理程序 215
10.1事件处理程序的含义 216
10.2事件处理程序的作用 216
10.3理解事件处理程序位置和用法 216
10.3.1在HTML元素中使用事件处理程序 217
10.3.2在脚本代码中使用事件处理程序 218
10.4学习事件 219
10.4.1单击事件 221
10.4.2获得焦点和失去焦点事件 222
10.4.3加载和卸载事件 224
10.4.4重置和提交事件 226
10.4.5鼠标事件 226
10.4.6键盘事件 227
10.5动手尝试10-1:获得焦点和失去焦点 228
10.6注册事件的其他方式 229
10.6.1 addEventListener()方法 230
10.6.2 attachEvent()方法 231
10.7event对象 231
10.7.1 DOM和Internet Explorer:DOM级别0注册 231
10.7.2使用最新事件注册方法处理事件 232
10.7.3属性和方法 233
10.7.4事件信息 234
10.8动手尝试10-2:使用addEventListener() 234
10.9使用事件处理程序创建脚本 235
10.9.1显示隐藏内容 235
10.9.2修改内容 237
10.10自测题 241
第11章 window对象 243
11.1window全局对象 244
11.2使用window对象的属性 244
11.2.1closed属性 246
11.2.2frames属性 246
11.2.3innerWidth和innerHeight属性 246
11.2.4length属性 247
11.2.5location属性 247
11.2.6name属性 247
11.2.7opener属性 248
11.2.8parent、self和top属性 248
11.2.9status和defaultStatus属性 248
11.3动手尝试11-1:使用location和innerWidth属性 249
11.4使用Window对象的方法 250
11.4.1alert()、prompt()和confirm()方法 251
11.4.2find()方法 253
11.4.3home()方法 253
11.4.4print()方法 253
11.4.5setInterval()和clearInterval()方法 254
11.4.6setTimeout()和clearTimeout()方法 255
11.5动手尝试11-2:使用setTimeout()和confirm()方法 257
11.6主窗口和新窗口 258
11.6.1弹出窗口的使用 258
11.6.2打开新窗口 258
11.6.3关闭新窗口 261
11.6.4移动、重置和滚动新窗口 262
11.7自测题 267
第12章 Math、Number和Date对象 269
12.1使用Math对象 270
12.1.1Math对象的定义 270
12.1.2如何使用Math对象 270
12.1.3属性 270
12.1.4方法 272
12.2动手尝试12-1:在页面中显示随机链接 283
12.3理解Number对象 284
12.3.1属性 284
12.3.2方法 286
12.4使用Date对象 289
12.4.1属性和方法 289
12.4.2用于获取值的方法 291
12.4.3用于设置值的方法 293
12.4.4其他方法 294
12.4.5创建日期脚本 295
12.5动手尝试12-2:创建JavaScript时钟 298
12.6自测题 299
第13章 处理字符串 301
13.1String对象简介 302
13.1.1String对象 302
13.1.2字符串字面量 302
13.1.3区别 302
13.2使用String对象的属性和方法 303
13.3String对象的方法 304
13.4动手尝试13-1:使用indexOf()测试地址 314
13.5使用cookie 315
13.5.1设置cookie 316
13.5.2读取cookie 318
13.6动手尝试13-2:记住名字 320
13.7使用正则表达式 321
13.7.1创建正则表达式 321
13.7.2使用正则表达式测试字符串 322
13.7.3添加标志 323
13.7.4创建强大的模式 324
13.7.5分组表达式 327
13.7.6replace()、match()和search()方法 328
13.7.7更多信息 330
13.8自测题 331
第14章 JavaScript和表单 333
14.1访问表单 334
14.1.1使用表单数组 334
14.1.2使用表单名 337
14.1.3使用id 338
14.2使用表单对象的属性和方法 339
14.2.1属性 339
14.2.2方法 342
14.3确保表单的可访问性 343
14.3.1使用正确的元素和标签顺序 343
14.3.2使用<label>和</label>标记 344
14.3.3使用<fieldset></fieldset>标记 344
14.3.4不要假设客户端会支持客户端脚本 345
14.4验证 345
14.4.1简单验证 346
14.4.2技术 347
14.4.3复选框和单选按钮 348
14.5动手尝试14-1:请求数字 350
14.6HTML5和表单 351
14.6.1新元素 351
14.6.2新输入类型 355
14.6.3新特性 356
14.6.4HTML5表单验证 357
14.7动手尝试14-2:使用HTML5或JavaScript验证电话号码 358
14.8自测题 359
第15章 高级技术简介 361
15.1使用图像 362
15.2动手尝试15-1:访问性更强的翻转效果 364
15.3JavaScript和框架 365
15.3.1框架的用法 365
15.3.2访问框架 365
15.3.3打破框架限制 368
15.4调试脚本 368
15.4.1错误类型 368
15.4.2使用警告和控制台 371
15.4.3使用Lint工具 372
15.4.4浏览器开发工具 373
15.5JavaScript和可访问性 374
15.5.1将内容与显示分离 374
15.5.2内容增强 376
15.6动手尝试15-2:使该代码具有可访问性 377
15.7JavaScript安全 378
15.7.1安全和签名脚本 379
15.7.2页面保护 379
15.8AJAX和JSON 381
15.8.1AJAX 381
15.8.2JSON 386
15.9自测题 390
第16章 JavaScript库、HTML5和Harmony 393
16.1使用jQuery 394
16.1.1获取jQuery 394
16.1.2开始使用jQuery:document.ready() 394
16.1.3使用选择器 395
16.1.4修改类 396
16.1.5用于创建特效的方法 398
16.1.6深入阅读 400
16.2动手尝试16-1:使用jQuery创建特效 400
16.3其他JavaScript库 401
16.3.1jQuery Mobile 401
16.3.2php.js 401
16.3.3node.js 401
16.3.4MooTools 401
16.3.5Three.js 401
16.4JavaScript和HTML5 402
16.4.1<canvas>元素 402
16.4.2拖放 408
16.5动手尝试16-2:拖放 411
16.6ECMAScript Harmony 413
16.6.1关键字const和let 413
16.6.2默认参数值 415
16.6.3类 416
16.6.4关于Harmony的更多内容 417
16.7深入阅读 417
16.8自测题 418
附录A 自测题答案 421