第1章 Hello JavaScript! 1
1.1“Hello World!”程序 1
1.2第二个“Hello World!”程序 2
1.2.1script标签 3
1.2.2JavaScript、ECMAScript和JScript的比较 5
1.2.3在JavaScript中定义函数 6
1.2.4事件句柄 6
1.2.5浏览器对象document 7
1.2.6属性操作符 8
1.2.7var关键字和作用域 9
1.2.8JavaScript语句 9
1.2.9注释 10
1.2.10你没看到的:HTML注释和CDATA小节 10
1.3JavaScript文件 12
1.4可访问性和JavaScript最佳实践 14
1.4.1可访问性指南 14
1.4.2noscript 15
第2章 JavaScript数据类型和变量 17
2.1标识变量 18
2.1.1命名规范 19
2.2基本类型 21
2.3String数据类型 22
2.3.1字符串转义符 22
2.3.2字符串编码 23
2.3.3字符串转换 25
2.4Boolean数据类型 27
2.5Number数据类型 28
2.6null和undefined变量 31
2.7常量:已命名数值,但不是变量 33
2.8知识测验 33
2.9测验答案 34
第3章 操作符和语句 35
3.1JavaScript语句的格式 35
3.2赋值语句 37
3.2.1算术操作符 37
3.2.2一元操作符 38
3.2.3操作符的优先级 39
3.2.4带操作符的赋值符 40
3.2.5位操作 40
3.3条件分支语句和程序流 42
3.3.1if...else条件分支语句 44
3.3.2switch条件语句 45
3.4条件操作符 48
3.4.1相同和相等操作符 48
3.4.2其他关系操作符 51
3.4.3JavaScript中唯一的三元操作符 53
3.5逻辑操作符 53
3.6高级语句:循环 55
3.6.1while循环 55
3.6.2do...while循环 56
3.6.3for循环 56
3.7知识测验 59
3.8测验答案 59
第4章 JavaScript对象 61
4.1基本数据类型对象 61
4.2布尔值、数字和字符串 63
4.2.1Boolean对象 63
4.2.2Number对象、静态属性及实例方法 64
4.2.3String对象 67
4.3正则表达式和RegExp 72
4.3.1RegExp方法:test和exec 72
4.3.2正则表达式的应用 75
4.4Date对象 79
4.5Math对象 82
4.5.1Math的属性 82
4.5.2Math的方法 83
4.6JavaScript数组 85
4.6.1FIFO队列 87
4.7知识测验 89
4.8测验答案 90
第5章 函数 91
5.1声明式的函数 91
5.1.1函数的命名规范和大小 92
5.1.2函数返回值和参数 92
5.2匿名函数 94
5.3函数字面量 97
5.3.1函数和递归 98
5.3.2嵌套的函数、函数闭包与内存泄漏 100
5.3.3回调函数 103
5.4函数类型小结 106
5.5函数作用域 106
5.6函数就是一个对象 107
5.7知识测验 108
5.8测验答案 108
第6章 排错、调试及跨浏览器问题 110
6.1调试的简单方法 110
6.2浏览器提供的开发和调试工具 111
6.2.1Firefox和Firebug 111
6.2.2使用console log 114
6.2.3Firefox、Web Developer toolkit和NoScript 116
6.2.4Opera和Dragonfly 116
6.2.5Safari/WebKit和Web Inspector 118
6.2.6Internet Explorer 119
6.3处理浏览器之间的差异 120
6.3.1对象检测 120
6.3.2对象检测失败的场合 123
6.3.3DOCTYPE、X-UA-Compatible和Quirks模式 126
6.3.4阻止向后兼容:IE 8.0中的Meta标签http-equiv 127
6.4知识测验 127
6.5测验答案 128
第7章 捕获事件 129
7.1事件 129
7.20级事件处理 130
7.2.1Event对象 133
7.2.2事件冒泡 135
7.2.3事件句柄和this 138
7.3DOM Level 2事件模型 139
7.3.1生成事件 145
7.4知识测验 146
7.5测验答案 147
第8章 表单、表单事件及校验 149
8.1为表单添加事件:不同方法 150
8.1.1跨浏览器兼容的事件处理 150
8.1.2取消一个事件 151
8.2选择列表框 152
8.2.1动态修改选择列表框 154
8.2.2选择列表框和自动选择 156
8.3单选按钮和复选框 159
8.4文本框、多行文本框、密码框和隐藏表单域元素 162
8.4.1文本验证 165
8.5input元素和基于正则表达式的验证 166
8.6表单、沙箱和XSS 169
8.7知识测验 170
8.8测验答案 171
第9章 浏览器就像个难题箱 172
9.1浏览器结构概述 172
9.2window对象 173
9.3窗口的创建和控件 174
9.3.1对话框:alert、confirm和prompt 174
9.3.2创建自定义窗口 175
9.3.3维护窗口 178
9.4frame对象 181
9.4.1location对象 183
9.4.2基于iframe的远程脚本 185
9.5添加并控制定时器 188
9.6history、screen和navigator对象 191
9.6.1history对象 191
9.6.2screen对象 191
9.6.3navigator对象 192
9.6.4history、screen和navigator属性的实际应用 193
9.7document对象 195
9.7.1链接 195
9.7.2图像 197
9.8innerHTML 199
9.9知识测验 201
9.10测验答案 201
第10章 cookie和其他客户端存储技术 202
10.1JavaScript沙箱与cookie安全 202
10.1.1同源安全策略 203
10.1.2使用document.domain 203
10.2cookie全解 204
10.2.1cookie的保存和读取 204
10.3Flash共享对象、Google Gears和HTML5 DOM存储 209
10.4知识测验 212
10.5测验答案 212
第11章 DOM或以树形展示的Web页面 214
11.1两个接口的传说 214
11.2DOM HTML API 215
11.2.1DOM HTML对象及其属性 216
11.2.2DOM(HTML)集合 220
11.3理解DOM:Core API 223
11.3.1DOM树 224
11.3.2节点属性和方法 225
11.3.3DOM核心文档对象 229
11.4元素及其上下文内访问 232
11.5修改文档树 234
11.6知识测验 238
11.7测验答案 239
第12章 动态页面 240
12.1JavaScript、CSS和 DOM 240
12.1.1样式属性 240
12.2字体和文本 244
12.2.1字体样式属性 245
12.2.2文本属性 246
12.3定位和动画 248
12.3.1动态定位 248
12.3.2拖放操作 252
12.4大小和修剪 256
12.4.1溢出和动态内容 256
12.4.2修剪矩形 258
12.5显示、可视性和不透明性 261
12.5.1实现正确效果的正确工具 261
12.5.2即时信息 262
12.6再探DOM:可折叠表单、查询选择器和类名 264
12.7知识测验 268
12.8测验答案 269
第13章 创建自定义JavaScript对象 270
13.1JavaScript对象和原型 270
13.1.1原型 270
13.2创建自定义JavaScript对象 272
13.2.1深入函数 273
13.2.2公有和私有属性 276
13.2.3getter和setter 276
13.3对象封装 278
13.4构造函数链和JavaScript继承 284
13.5一次性对象 287
13.6对象库:为复用而封装对象 290
13.7高级错误处理技术(try、throw和catch) 291
13.8知识测验 295
13.9测验答案 295
第14章 使用Ajax 297
14.1Ajax的工作原理 297
14.2Hello Ajax World! 298
14.3XMLHttpRequest对象及请求的准备与发送 302
14.3.1对象,对象,谁是对象 302
14.3.2XMLHttpRequest对象的方法 304
14.4处理Web请求的应答 307
14.4.1检查Ajax请求的readyState和status值 307
14.4.2处理Web请求应答 308
14.5Ajax:不仅是代码 311
14.5.1Ajax的动态特性 311
14.5.2Ajax的可访问性和适度降格 311
14.5.3安全和工作区 312
14.6JavaScript和Ajax程序库 313
14.7知识测验 316
14.8测验答案 316
第15章 Ajax数据:XML或J SO N 318
15.1XML格式的Ajax应答 318
15.1.1数据的MIME类型 318
15.1.2在服务器端生成XML数据 319
15.1.3在客户端处理XML数据 322
15.2JSON 326
15.2.1一个简单的JSON应用程序 326
15.2.2JSON对象 330
15.3知识测验 334
15.4测验答案 336