第1篇 语言基础 2
第1章 JavaScript概述 2
1.1 什么是JavaScript 2
1.2 为什么使用JavaScript 3
1.2.1 JavaScript的基本特点 3
1.2.2 JavaScript与Java进行比较 4
1.3 JavaScript有什么作用 4
1.3.1 进行交互 5
1.3.2 进行本地验证 5
1.4 在什么地方使用JavaScript 5
1.4.1 服务器端应用 5
1.4.2 客户端应用 5
1.5 如何使用JavaScript 6
1.5.1 嵌入JavaScript 6
1.5.2 链接JavaScript 7
1.6 怎样编写JavaScript 8
1.6.1 使用纯文本编辑器 8
1.6.2 专业脚本编辑工具 8
1.7 如何运行JavaScript 9
1.8 小结 10
第2章 HTML是学习JavaScript的基础 11
2.1 HTML简介 11
2.2 结构化标记 12
2.2.1 架构标记 12
2.2.2 注释标记 14
2.3 文本标记 15
2.3.1 换行标记 15
2.3.2 水平线标记 17
2.3.3 文字标记 18
2.3.4 加粗标记 19
2.3.5 斜体标记 20
2.3.6 下划线标记 21
2.3.7 删除线标记 21
2.3.8 打字体标记 22
2.3.9 上标标记和下标标记 23
2.3.10 标题标记 24
2.4 列表标记 25
2.4.1 未排序列表 25
2.4.2 排序列表 26
2.4.3 自定义列表 27
2.5 表单标记 28
2.5.1 表单容器 28
2.5.2 单行文本框 29
2.5.3 密码框 30
2.5.4 多行文本框 30
2.5.5 单选按钮 31
2.5.6 复选框 33
2.5.7 列表框 34
2.5.8 文件域 36
2.5.9 提交按钮和取消按钮 37
2.6 小结 38
第3章 JavaScript基本语法 39
3.1 注释 39
3.1.1 单行注释 39
3.1.2 多行注释 41
3.1.3 隐藏脚本注释 42
3.2 关键字 43
3.3 〈script〉标记 45
3.3.1 〈script〉标记的属性设置 45
3.3.2 〈script〉标记的位置 46
3.3.3 〈script〉标记的数量 48
3.4 分号 49
3.5 数据类型 51
3.5.1 基本数据类型 51
3.5.2 特殊数据类型 55
3.5.3 数据类型转换 57
3.6 变量 66
3.6.1 变量命名 67
3.6.2 变量声明和初始化 67
3.6.3 变量类型 73
3.6.4 变量作用域 74
3.7 小结 77
第4章 JavaScript运算符 78
4.1 赋值运算符 78
4.1.1 直接赋值运算符的一般使用 78
4.1.2 直接赋值运算符的特殊使用 79
4.2 算术运算符 82
4.2.1 基本算术运算符 82
4.2.2 算术赋值运算符 84
4.2.3 增量减量算术运算符 85
4.3 字符串运算符 87
4.4 比较运算符 90
4.4.1 比较运算符的一般使用 90
4.4.2 比较运算符的特殊使用 93
4.5 逻辑运算符 96
4.5.1 逻辑与运算符 96
4.5.2 逻辑或运算符 97
4.5.3 逻辑非运算符 98
4.5.4 逻辑运算符的特殊使用 99
4.6 位运算符 100
4.6.1 基本位运算符 100
4.6.2 移位运算符 105
4.6.3 位赋值运算符 108
4.7 条件运算符 109
4.7.1 条件运算符的基本使用 109
4.7.2 条件运算符的嵌套使用 110
4.7.3 条件运算符的灵活使用 111
4.8 返回数据类型运算符 114
4.9 其他运算符 116
4.10 运算符优先级 117
4.11 小结 119
第5章 JavaScript结构语句 120
5.1 基本结构语句 120
5.2 条件结构语句 121
5.2.1 if条件结构语句 121
5.2.2 if…else条件结构语句 124
5.2.3 if…else if条件结构语句 126
5.2.4 嵌套if条件结构语句 128
5.2.5 switch条件结构语句 130
5.2.6 巧用switch语句实现特定功能 135
5.3 循环结构语句 138
5.3.1 for循环结构语句 138
5.3.2 嵌套for循环结构语句 142
5.3.3 for-in循环结构语句 144
5.3.4 while循环结构语句 146
5.3.5 do…while循环结构语句 150
5.4 跳转结构语句 154
5.4.1 break跳转结构语句 154
5.4.2 continue跳转结构语句 158
5.4.3 标签跳转结构语句 161
5.5 异常处理语句 164
5.5.1 try…catch…finally异常处理语句 165
5.5.2 throw抛出异常语句 167
5.6 使用with语句进行对象操作 169
5.7 小结 170
第6章 JavaScript函数 171
6.1 全局函数 171
6.1.1 eval函数 171
6.1.2 escape函数和unescape函数 173
6.1.3 NaN和isNaN函数 175
6.1.4 infinity和isFinite函数 177
6.1.5 parseInt函数和parseFloat函数 178
6.2 自定义函数 178
6.2.1 定义函数 178
6.2.2 调用函数 181
6.2.3 函数参数 185
6.2.4 函数返回值 190
6.3 函数对象 194
6.3.1 创建函数 195
6.3.2 函数对象的属性 196
6.3.3 函数对象的方法 201
6.4 小结 202
第2篇 实战提高 204
第7章 初级开发与调试 204
7.1 管理源代码 204
7.1.1 建立项目文件夹 204
7.1.2 HTML文件与JS文件 204
7.1.3 文件命名的风格 205
7.2 代码排版风格 205
7.2.1 坏风格和好风格 205
7.2.2 代码行限制 207
7.2.3 用Tab制表符缩进 208
7.2.4 折行原则 210
7.2.5 无处不在的空格与空行 210
7.2.6 花括号的位置 211
7.2.7 编辑工具的自动格式化 211
7.3 命名风格 212
7.3.1 变量、函数的命名 212
7.3.2 for循环中的局部变量命名 213
7.3.3 区分全局变量和局部变量 213
7.3.4 常量用大写 215
7.4 注释风格 215
7.4.1 Java风格注释 215
7.4.2 Dojo风格注释 216
7.5 编写工具 218
7.5 1 文本工具 218
7.5.2 高级文本工具 219
7.5.3 网页制作软件 225
7.6 调试工具 227
7.6.1 JavaScript调试的困境 228
7.6.2 使用Firefox的“错误控制台” 230
7.6.3 使用alert调试 231
7.7 小结 233
第8章 Number对象 234
8.1 Number对象的简介和语法 234
8.1.1 Number对象简介 234
8.1.2 Number对象语法 234
8.2 Number对象的属性 235
8.2.1 JavaScript的处理范围 236
8.2.2 如何表示大于最大值的数 236
8.2.3 如何表示小于最小值的数 237
8.2.4 判断是否为数字 238
8.2.5 为Number对象添加属性和方法 239
8.3 Number对象的方法 240
8.3.1 将数值转换成指数形式 240
8.3.2 保留多少位小数的方法 241
8.3.3 保留多少位数值的方法 242
8.3.4 获取Number对象数值 243
8.3.5 获取Number对象字符值 245
8.3.6 Number对象的浏览器问题 247
8.4 小结 248
第9章 String对象 249
9.1 String对象的简介和语法 249
9.1.1 String对象简介 249
9.1.2 String对象语法 250
9.1.3 转义字符 251
9.2 字符串比较 253
9.2.1 简单比较是否相等 254
9.2.2 字典式比较 256
9.3 对字符串中字符的操作 257
9.3.1 字符数量 258
9.3.2 求指定位置字符 259
9.3.3 求指定位置字符的Unicode编码 260
9.3.4 使用substring方法获取多个字符 261
9.3.5 使用slice方法获取多个字符 262
9.3.6 使用substr方法获取多个字符 263
9.3.7 使用indexOf方法获取指定字符 264
9.3.8 使用lastIndexOf方法获取指定字符 266
9.4 对字符串的操作 268
9.4.1 拼接字符串 268
9.4.2 转换大小写 269
9.4.3 获取字符串值 270
9.5 格式化字符串 270
9.5.1 创建锚点 270
9.5.2 创建超链接 271
9.5.3 改变字符串相对大小 272
9.5.4 改变字符串样式 273
9.5.5 改变字符串位置 274
9.5.6 设置字符串大小 275
9.5.7 设置字符串颜色 277
9.5.8 嵌套使用方法 277
9.6 小结 278
第10章 Math对象 279
10.1 Math对象语法 279
10.2 Math对象属性 279
10.2.1 直接属性 280
10.2.2 运算属性 281
10.3 Math对象方法 283
10.3.1 生成随机数 283
10.3.2 截断方法 287
10.3.3 求最大值和最小值 289
10.3.4 绝对值计算 291
10.4 小结 292
第11章 Array数组对象 293
11.1 数组对象语法 293
11.1.1 创建数组 293
11.1.2 数组长度 297
11.1.3 数组下标 302
11.1.4 数组索引 305
11.1.5 多维数组 308
11.2 对数组的操作 311
11.2.1 连接数组 311
11.2.2 指定数组的分隔字符 313
11.2.3 截取数组 314
11.3 对数组元素的操作 316
11.3.1 对数组元素进行排序 316
11.3.2 倒序数组元素 319
11.3.3 添加和删除数组元素 321
11.3.4 删除指定数量的数组元素 324
11.4 自定义数组方法 326
11.4.1 查找数组元素 326
11.4.2 包含数组元素 329
11.4.3 复制数组 330
11.4.4 插入新数组元素 332
11.5 小结 335
第12章 Date对象 336
12.1 Date对象语法 336
12.1.1 创建Date对象 336
12.1.2 使用属性和方法 340
12.2 Date对象方法 340
12.2.1 Date对象的获取方法 340
12.2.2 Date对象的设置方法 342
12.2.3 Date对象的返回值 344
12.2.4 对象调用方法 346
12.3 Date对象的计算 347
12.4 显示日期和时间 348
12.4.1 显示当前日期和时间 348
12.4.2 显示英文月份和中文星期 349
12.4.3 显示计时器和倒计时 351
12.4.4 显示日期时间事件 352
12.4.5 显示日期时间提示 355
12.5 小结 357
第13章 Window对象 358
13.1 打开和关闭窗口 358
13.1.1 打开窗口 358
13.1.2 打开窗口属性设置 362
13.1.3 关闭窗口 364
13.2 对话框 366
13.2.1 信息对话框 366
13.2.2 选择对话框 370
13.2.3 提示对话框 375
13.3 对窗口的操作 380
13.3.1 移动窗口 380
13.3.2 缩放窗口 381
13.3.3 滚动窗口 383
13.3.4 打印窗口内容 383
13.3.5 窗口状态栏 385
13.4 定时设置 386
13.4.1 循环定时 386
13.4.2 延时定时 387
13.5 窗口事件 389
13.5.1 文档载入事件 390
13.5.2 关闭窗口事件 391
13.5.3 窗口焦点事件 392
13.5.4 窗口缩放事件 394
13.5.5 错误事件 396
13.6 小结 399
第14章 Document对象 400
14.1 文档中的对象 400
14.1.1 HTML元素 400
14.1.2 锚点和超链接 404
14.1.3 背景和文本 407
14.1.4 图像 408
14.1.5 表单 409
14.2 文档中内容 410
14.2.1 上次修改时间 410
14.2.2 文档定位 412
14.2.3 文档标题 415
14.3 对文档的操作 416
14.3.1 向文档中输入 416
14.3.2 打开和关闭文档 419
14.3.3 清除文档 422
14.4 文档事件 422
14.4.1 鼠标事件 422
14.4.2 键盘事件 427
14.5 小结 430
第15章 Form表单对象 431
15.1 表单对象 431
15.1.1 访问表单对象及元素对象 431
15.1.2 设置表单对象 434
15.2 按钮对象 436
15.2.1 公用内容 436
15.2.2 普通按钮 438
15.2.3 提交按钮 440
15.2.4 重置按钮 442
15.2.5 图片按钮 443
15.3 文本框对象 444
15.3.1 单行文本框 444
15.3.2 密码框 449
15.3.3 隐藏输入对象 450
15.3.4 多行文本框 451
15.4 复选框和单选按钮 452
15.4.1 复选框 452
15.4.2 单选按钮 455
15.5 列表对象 459
15.5.1 select框对象 460
15.5.2 option选项对象 466
15.6 文件上传对象 471
15.7 小结 473
第16章 event事件对象 474
16.1 键盘按键 474
16.1.1 特殊按键 474
16.1.2 左特殊按键 477
16.1.3 获取具体按键 479
16.2 鼠标操作 482
16.2.1 鼠标按键 482
16.2.2 鼠标操作对象 485
16.3 鼠标指针位置 487
16.3.1 相对屏幕位置 487
16.3.2 相对浏览器位置 488
16.3.3 相对事件容器位置 490
16.4 小结 490
第17章 JavaScript其他对象 491
17.1 frame框架对象 491
17.1.1 创建frame框架对象 491
17.1.2 对框架对象的操作 493
17.1.3 对框架对象的访问 495
17.1.4 框架间访问 497
17.2 history历史对象 498
17.3 location对象 500
17.3.1 获取具体信息 500
17.3.2 location对象操作 502
17.4 navigator浏览器对象 505
17.5 screen屏幕对象 506
17.6 小结 507
第18章 CSS在JavaScript中的应用 508
18.1 CSS基础 508
18.1.1 基本格式 508
18.1.2 CSS注释 510
18.1.3 属性值单位 511
18.2 CSS属性 512
18.2.1 字体属性 513
18.2.2 文本属性 514
18.2.3 背景属性 515
18.2.4 边框属性 517
18.2.5 边界属性 518
18.2.6 填充属性 519
18.3 CSS定义方式 519
18.3.1 行内方式 520
18.3.2 外部链接方式 520
18.3.3 定义和使用样式类 522
18.3.4 定义和使用ID选择符 525
18.4 小结 526
第3篇 高级应用 528
第19章 面向对象编程 528
19.1 面向对象基础 528
19.1.1 “对象(Object)”和“类(Class)” 528
19.1.2 属性与方法 529
19.1.3 封装、多态性和继承 530
19.2 使用Object类建立对象 531
19.2.1 关于Object类 531
19.2.2 Obiect类的属性和方法 532
19.2.3 构造一个Object对象 532
19.2.4 为对象添加新的方法 533
19.2.5 this关键字 535
19.2.6 构造对象的函数 536
19.3 深入Object对象 539
19.3.1 用循环获取对象的属性 539
19.3.2 用prototype实现JavaScript的扩展 540
19.3.3 增强String的功能 543
19.3.4 toString()方法 543
19.3.5 重载toString()方法 544
19.3.6 toSource()方法 545
19.3.7 用watch()方法自定义监听事件 546
19.4 类的定义 548
19.4.1 定义一个新的类 548
19.4.2 定义类的方法(method) 550
19.4.3 类的继承 551
19.5 this详解 553
19.5.1 HTML中的this 553
19.5.2 事件方法中的this 554
19.5.3 类定义中的this 556
19.5.4 CSS的expression中的this 557
19.5.5 内部函数的this 557
19.6 文字记号法 558
19.6.1 用文字记号法创建数组 558
19.6.2 创建哈希表(Hashtable) 558
19.6.3 用文字记号法创建对象 559
19.6.4 用文字记号法定义对象的“方法” 560
19.6.5 用文字记号法为函数传递复合参数 561
19.7 小结 562
第20章 DOM对象 563
20.1 DOM概述 563
20.1.1 什么是DOM 563
20.1.2 DOM的节点树 564
20.1.3 HTML中的DOM对象 565
20.1.4 页面的DOM结构 566
20.2 访问DOM节点 567
20.2.1 HTML文档的节点 567
20.2.2 document对象的常用方法 567
20.2.3 Element节点的属性和方法 568
20.2.4 用DOM操作HTML文档 568
20.2.5 递归遍历节点树 569
20.2.6 递归的原理 571
20.2.7 通过getElementsByTagName获得节点 572
20.2.8 递归与getElementsByTagName的比较 572
20.2.9 遍历其他框架页面的DOM对象 573
20.2.10 遍历其他窗口的DOM对象 576
20.2.11 以ID获取一个节点对象 577
20.2.12 以NAME获取一个节点对象 579
20.2.13 用document.all[]获取DOM对象 581
20.2.14 以class获取节点对象 581
20.3 修改DOM节点实现动态HTML 582
20.3.1 通过事件实现动画效果 582
20.3.2 添加和删除元素节点 585
20.3.3 createElement方法 587
20.3.4 appendChild方法 588
20.3.5 设置元素节点的属性 588
20.3.6 获取父级节点 589
20.3.7 删除子节点 589
20.3.8 firstChild属性和lastChild属性 590
20.3.9 设置对象的层级样式(CSS Style) 591
20.3.10 添加和删除文本节点 592
20.3.11 outerHTML、innerHTML和innerTEXT 594
20.4 小结 598
第21章 Web 2.0调试与测试 599
21.1 调试与测试的区别 599
21.2 用Firebug调试JavaScript 600
21.2.1 安装Firebug 600
21.2.2 调试的3大法宝 604
21.2.3 使用Firebug的控制台(Console) 604
21.2.4 使用DOM查看器 608
21.2.5 用DOM查看器监测对象属性 609
21.2.6 设置断点 610
21.3 JsUnit做自动化单元测试 617
21.3.1 什么叫单元测试 617
21.3.2 JsUnit的功能 617
21.3.3 安装JsUnit 617
21.3.4 运行测试的界面 618
21.3.5 测试页和测试函数 619
21.3.6 使用assert函数检验结果 621
21.3.7 setUp()函数和tearDown()函数 623
21.3.8 setUpPage()函数和tearDownPage()函数 627
21.3.9 建立测试组(Test Suite) 627
21.4 小结 628
第22章 Ajax 629
22.1 Ajax概述 629
22.1.1 什么叫Ajax 629
22.1.2 什么叫异步传输 629
22.1.3 Ajax的演变 630
22.1.4 真正的Ajax 631
22.1.5 Ajax的优点 632
22.1.6 Ajax的缺点 632
22.1.7 Ajax所涉及的技术 633
22.2 Ajax基础 633
22.2.1 HTTP请求(Requests)和响应(Responses) 634
22.2.2 HTTP请求的数据格式 634
22.2.3 HTTP响应的数据格式 636
22.2.4 隐藏IFrame实现Ajax 637
22.2.5 XMLHttp的HTTP请求 641
22.2.6 处理服务器响应 643
22.2.7 与XML协同 646
22.2.8 Ajax实现的自动保存 647
22.3 Dojo Ajax工具箱 649
22.3.1 Dojo简介 649
22.3.2 Dojo的文件结构 649
22.3.3 Dojo的程序结构 650
22.3.4 安装Dojo 650
22.3.5 开始使用Dojo 651
22.3.6 建立一个按钮小部件(Widget) 651
22.3.7 使用dojo.require装载模块 652
22.3.8 兼容HTML标签 652
22.3.9 建立事件 652
22.3.10 使用dojo.xhrGet实现Ajax 653
22.3.11 用GET发送数据给服务器 655
22.3.12 使用dojo.byId()获取指定的DOM对象 656
22.3.13 服务器端的代码 656
22.3.14 用POST方式发送数据给服务器 657
22.3.15 修改服务器端的代码 658
22.4 Prototype框架 659
22.4.1 Prototype框架简介 659
22.4.2 安装设置Prototype 660
22.4.3 使用$()方法 660
22.4.4 使用$F()方法 662
22.4.5 使用Try.these()方法 663
22.4.6 Ajax对象选项 664
22.4.7 Prototype的回调事件 664
22.4.8 参数和HTTP方式 665
22.4.9 全局响应器 666
22.4.10 用Ajax.Updater更新动态页面 666
22.4.11 用Ajax.PeriodicalUpdater自动发送请求 667
22.5 小结 668
第23章 XML与JSON 669
23.1 XML 669
23.1.1 XML与XHTML、HTML 669
23.1.2 IE中的XML DOM 669
23.1.3 使用load()装载XML数据 671
23.1.4 使用loadXML()装载XML数据 671
23.1.5 遍历XML DOM 671
23.1.6 XML DOM的getElementsByTagName() 674
23.1.7 获取XML代码 677
23.1.8 使用createElement()建立节点 678
23.1.9 删除、替换和插入节点 678
23.1.10 捕捉XML错误 679
23.1.11 Firefox中的XML DOM 681
23.1.12 Firefox中装载XML数据 681
23.1.13 Firefox中获得XML代码 682
23.1.14 Firefox中捕捉XML错误 682
23.1.15 跨浏览器的XML 683
23.2 XPath 684
23.2.1 XPath概述 684
23.2.2 IE中的XPath 685
23.2.3 Firefox中的XPath 686
23.3 Ajax与JSON 689
23.3.1 什么叫JSON 689
23.3.2 JSON与XML 689
23.3.3 JSON解码 690
23.3.4 JSON的安全性 693
23.3.5 JSON编码 693
23.4 小结 694
第24章 综合案例 695
24.1 跟随鼠标的彩色文字 695
24.2 烟花效果的下拉菜单 697
24.3 网络导航条 700
24.4 类似QQ的菜单 702
24.5 三级联动菜单 704
24.6 实现关机效果的界面 706
24.7 Ajax效果:字符串过滤 708
24.8 Ajax效果:可拖拽的表格 710
24.9 拖动表格行改变顺序 714