第1章 Hello JavaScript! 1
1.1 “Hello World!”程序 1
1.2 第二个“Hello World!”程序 2
1.2.1 script标签 3
1.2.2 JavaScript、ECMAScript和JScript的比较 5
1.2.3 在JavaScript中定义函数 6
1.2.4 事件处理程序 6
1.2.5 浏览器对象document 7
1.2.6 property操作符 8
1.2.7 var关键字和作用域 9
1.2.8 JavaScript语句 9
1.2.9 注释 10
1.2.10 你没看到的:HTML注释和CDATA区段 10
1.3 JavaScript文件 12
1.4 可访问性和JavaScript最佳实践 14
1.4.1 可访问性指南 14
1.4.2 noscript 15
第2章 JavaScript数据类型和变量 17
2.1 标识变量 17
2.1.1 命名规范 19
2.2 基本类型 21
2.3 String数据类型 22
2.3.1 字符串转义序列 22
2.3.2 字符串编码 23
2.3.3 字符串转换 25
2.4 Boolean数据类型 27
2.5 Number数据类型 28
2.6 null和undefined变量 31
2.7 常量:已命名数值,但不是变量 33
2.8 知识测验 33
2.9 测验答案 34
第3章 运算符和语句 36
3.1 JavaScript语句的格式 36
3.2 赋值语句 37
3.2.1 算术运算符 38
3.2.2 一元运算符 39
3.2.3 运算符的优先级 40
3.2.4 带运算符的快捷赋值 41
3.2.5 位操作运算符 41
3.3 条件语句和程序流 43
3.3.1 if...else条件语句 45
3.3.2 switch条件语句 46
3.4 条件运算符 49
3.4.1 相等和恒等运算符 49
3.4.2 其他关系运算符 52
3.4.3 JavaScript中唯一的三元运算符 54
3.5 逻辑运算符 54
3.6 高级语句:循环 56
3.6.1 while循环 56
3.6.2 do...while循环 57
3.6.3 for循环 58
3.7 知识测验 60
3.8 测验答案 61
第4章 JavaScript对象 63
4.1 基本数据类型对象 63
4.2 布尔值、数字和字符串 65
4.2.1 Boolean对象 65
4.2.2 Number对象、静态属性及实例方法 66
4.2.3 String对象 69
4.3 正则表达式和RegExp 74
4.3.1 RegExp方法:test和exec 74
4.3.2 正则表达式的应用 77
4.4 Date对象 81
4.5 Math对象 84
4.5.1 Math的属性 85
4.5.2 Math的方法 85
4.6 JavaScript数组 87
4.6.1 FIFO队列 89
4.7 知识测验 92
4.8 测验答案 92
第5章 函数 94
5.1 声明式的函数 94
5.1.1 函数的命名约定和大小 95
5.1.2 函数返回值和参数 95
5.2 匿名函数 97
5.3 函数字面量 100
5.3.1 函数和递归 101
5.3.2 嵌套函数、函数闭包与内存泄漏 103
5.3.3 回调函数 106
5.4 函数类型小结 109
5.5 函数作用域 109
5.6 函数就是一个对象 111
5.7 知识测验 111
5.8 测验答案 111
第6章 排错、调试及跨浏览器问题 113
6.1 调试的简单方法 113
6.2 浏览器提供的开发和调试工具 113
6.2.1 Firefox和Firebug 114
6.2.2 使用console.log 117
6.2.3 Firefox、Web Developer toolkit和NoScript 119
6.2.4 Opera和Dragonfly 119
6.2.5 Safari/WebKit和Web Inspector 121
6.2.6 Internet Explorer 122
6.3 处理浏览器之间的差异 123
6.3.1 对象检测 123
6.3.2 对象检测失败的场合 126
6.3.3 DOCTYPE、X-UA-Compatible和Quirks模式 129
6.3.4 阻止向后兼容性:IE 8.0中的元标签http-equiv 130
6.4 知识测验 131
6.5 测验答案 131
第7章 捕获事件 132
7.1 事件 132
7.2 0级事件处理 133
7.2.1 Event对象 135
7.2.2 事件冒泡 138
7.2.3 事件处理程序和this 141
7.3 DOM Level 2事件模型 142
生成事件 148
7.4 知识测验 149
7.5 测验答案 150
第8章 表单、表单事件及验证 151
8.1 为表单添加事件:不同方法 151
8.1.1 跨浏览器兼容的事件处理 152
8.1.2 取消一个事件 153
8.2 选择列表框元素 154
8.2.1 动态修改选择列表框 156
8.2.2 选择列表框和自动选择 158
8.3 单选按钮和复选框 160
8.4 文本框、文本区域、密码框和隐藏表单字段的输入元素 164
文本验证 166
8.5 input元素字段和基于正则表达式的验证 168
8.6 表单、沙箱和XSS 171
8.7 知识测验 172
8.8 测验答案 172
第9章 浏览器之谜 174
9.1 浏览器结构概述 174
9.2 window对象 175
9.3 窗口的创建和控制 176
9.3.1 对话框:alert、confirm和prompt 176
9.3.2 创建自定义窗口 177
9.3.3 修改窗口 180
9.4 frame对象 183
9.4.1 location对象 185
9.4.2 基于iframe的远程脚本 187
9.5 添加并控制定时器 191
9.6 history、screen和navigator对象 193
9.6.1 history对象 193
9.6.2 screen对象 194
9.6.3 navigator对象 195
9.6.4 history、screen和navigator属性的实际应用 195
9.7 document对象 198
9.7.1 链接 198
9.7.2 图像 200
9.8 innerHTML 201
9.9 知识测验 203
9.10 测验答案 203
第10章 cookie和其他客户端存储技术 205
10.1 JavaScript沙箱与cookie安全 205
10.1.1 同源安全策略 205
10.1.2 使用document.domain 206
10.2 cookie全解 207
cookie的保存和读取 207
10.3 Flash共享对象、Google Gears和HTML5 DOM存储 212
10.4 知识测验 215
10.5 测验答案 215
第11章 DOM或以树型展示的Web页面 217
11.1 两个接口的传说 217
11.2 DOM HTMLAPI 218
11.2.1 DOM HTML对象及其属性 219
11.2.2 DOM(HTML)集合 223
11.3 理解DOM:Core API 226
11.3.1 DOM树 227
11.3.2 节点属性和方法 228
11.3.3 DOM核心文档对象 232
11.4 元素及其上下文内访问 235
11.5 修改文档树 237
11.6 知识测验 241
11.7 测验答案 242
第12章 动态页面 243
12.1 JavaScript、CSS和DOM 243
样式属性 243
12.2 字体和文本 247
12.2.1 字体样式属性 247
12.2.2 文本属性 248
12.3 定位和动画 251
12.3.1 动态定位 251
12.3.2 拖放操作 255
12.4 大小和修剪 259
12.4.1 溢出和动态内容 259
12.4.2 修剪矩形 262
12.5 显示、可视性和不透明性 264
12.5.1 实现正确效果的正确工具 264
12.5.2 即时信息 265
12.6 再探DOM:可折叠表单、查询选择器和类名 267
12.7 知识测验 272
12.8 测验答案 272
第13章 创建自定义JavaScript对象 274
13.1 JavaScript对象和原型 274
原型 274
13.2 创建自定义JavaScript对象 276
13.2.1 深入函数 277
13.2.2 公有和私有属性以及何时使用两种属性 280
13.2.3 getter和setter 280
13.3 对象封装 282
13.4 构造函数链和JavaScript继承 289
13.5 一次性对象 291
13.6 对象库:为复用而封装对象 294
13.7 高级错误处理技术(try、throw和catch) 296
13.8 知识测验 299
13.9 测验答案 299
第14章 使用Ajax 301
14.1 Ajax的工作原理 301
14.2 Hello Ajax World 302
14.3 XMLHttpRequest对象及请求的准备与发送 306
14.3.1 对象,对象,什么拥有对象 306
14.3.2 XMLHttppRequest对象的方法 308
14.4 处理Web请求的返回结果 311
14.4.1 检查Ajax请求的readyState和status值 311
14.4.2 处理Web请求的结果 312
14.5 Ajax:不仅是代码 315
14.5.1 Ajax的动态特性 315
14.5.2 Ajax的可访问性和适度降格 315
14.5.3 安全和工作区 317
14.6 JavaScript和Ajax库 318
14.7 知识测验 320
14.8 测验答案 321
第15章 Ajax数据:XML或JSON 322
15.1 XML格式的Ajax结果 322
15.1.1 数据的MIME类型 322
15.1.2 在服务器端生成XML数据 323
15.1.3 在客户端处理XML数据 326
15.2 JSON 330
15.2.1 简单的JSON应用程序 330
15.2.2 JSON对象 334
15.3 知识测验 338
15.4 测验答案 340