第1部分 入门 1
第1章(重新)介绍JavaScript 2
1.1什么是JavaScript 4
1.2 JavaScript的历史 6
1.2.1间或有些丑陋的历史 6
1.2.2 Ajax重临 7
1.2.3浏览器改进 11
1.2.4框架的兴起 12
1.3 JavaScript不是什么 14
1.4 JavaScript和其他常见技术的比较 14
1.5为什么说JavaScript是一种好语言 17
1.6 JavaScript版本和浏览器支持 18
1.7 JavaScript编程目标 20
1.8小结 21
第2章JavaScript实战 23
2.1选择DOCTYPE 25
2.2 HTML5入门 27
2.2.1一个HTML5模板 27
2.2.2 HTML5表单元素 29
2.3为HTML添加JavaScript 32
2.4关键的开发方法 34
2.4.1功能退化 34
2.4.2渐进增强 35
2.4.3无干扰的JavaScript 37
2.5拼凑一些代码 38
2.5.1开发基本功能 38
2.5.2添加JavaScript层次 39
2.5.3处理事件 40
2.5.4执行验证 43
2.6窃取这段JavaScript 46
2.7小结 47
第3章 行业工具 49
3.1大辩论:文本编辑器还是IDE? 51
3.1.1共有特性 51
3.1.2两者的比较 54
3.1.3一些文本编辑器 56
3.1.4几种IDE 57
3.2浏览器:你的朋友,你的敌人 58
3.2.1 Google公司的Chrome 59
3.2.2 Mozilla公司的Firefox 60
3.2.3微软公司的Internet Explorer 61
3.2.4 Opera 62
3.2.5苹果公司的Safari 62
3.3在多个浏览器上测试 64
3.4测试JavaScript 65
3.5错误和调试 67
3.5.1错误类型 68
3.5.2常见错误起因 69
3.5.3调试技术 70
3.5.4使用Firebug 72
3.6在线资源 76
3.7小结 77
第2部分JavaScript基础 79
第4章 简单变量类型 80
4.1变量基础知识 82
4.1.1变量声明 82
4.1.2变量名 84
4.1.3赋值 85
4.1.4简单值类型 85
4.2使用数字 86
4.2.1算术运算符 87
4.2.2创建计算器 89
4.2.3格式化数字 93
4.2.4 Math对象 95
4.3使用字符串 97
4.3.1创建字符串 98
4.3.2字符串拆分 98
4.3.3操纵字符串 103
4.3.4转义序列 106
4.4完成类型转换 106
4.5复习与提高 109
4.5.1复习 109
4.5.2提高 110
4.6小结 110
第5章 使用控制结构 112
5.1条件语句的基础知识 114
5.1.1 if条件语句 114
5.1.2什么是真 115
5.1.3比较运算符 116
5.1.4逻辑运算符 119
5.1.5汇总 120
5.2更多的条件语句 121
5.2.1 if-else条件语句 122
5.2.2 if-else if条件语句 122
5.2.3 switch条件语句 124
5.2.4神秘的条件语句 129
5.3更复杂的条件 130
5.3.1数值比较 131
5.3.2字符串比较 132
5.3.3 typeof运算符 135
5.4循环基础知识 136
5.4.1 for循环 137
5.4.2 while循环 141
5.5复习和提高 142
5.5.1复习 142
5.5.2提高 142
5.6小结 143
第6章 复杂变量类型 144
6.1生成日期和时间 146
6.1.1创建日期 146
6.1.2日期方法 149
6.1.3使用时区 152
6.1.4更改日期 153
6.1.5日期运算 154
6.2使用数组 161
6.2.1创建数组 161
6.2.2访问数组元素 163
6.2.3访问所有数组元素 168
6.2.4删除数组元素 169
6.2.5数组方法 170
6.2.6在字符串和数组之间转换 175
6.3使用对象 176
6.3.1创建对象 176
6.3.2访问对象属性 177
6.3.3访问所有对象属性 179
6.3.4删除对象属性 180
6.4数组与对象的比较 183
6.5复习和提高 184
6.5.1复习 184
6.5.2提高 184
6.6小结 185
第7章 创建函数 186
7.1基础知识 188
7.1.1定义你自己的函数 188
7.1.2向函数传递值 189
7.1.3验证函数参数 191
7.1.4参数值传递方式 194
7.1.5从函数返回值 197
7.1.6理解变量作用域 201
7.2作为对象的函数 205
7.2.1作为变量值的函数 206
7.2.2作为参数值的函数 207
7.2.3汇总 209
7.3更有趣的内容 213
7.3.1上下文和this对象 213
7.3.2匿名函数 216
7.3.3嵌套函数 217
7.3.4执行递归 219
7.4复习和提高 221
7.4.1复习 221
7.4.2提高 221
7.5小结 222
第8章 事件处理 223
8.1事件处理的基础 225
8.2创建事件监听器 225
8.2.1(不要使用)嵌入式事件处理器 226
8.2.2传统事件处理 226
8.2.3 W3C事件处理 228
8.2.4 IE浏览器事件处理 229
8.2.5创建一个事件分配器 229
8.3创建一个实用程序库 230
8.4事件类型 233
8.4.1输入设备事件 233
8.4.2键盘事件 236
8.4.3浏览器事件 239
8.4.4表单事件 240
8.5事件可访问性 241
8.6事件和渐进增强 242
8.7高级事件处理 243
8.7.1引用事件 244
8.7.2事件属性 245
8.7.3检查按键 248
8.7.4阻止默认事件行为 250
8.7.5事件的两个阶段 253
8.7.6委派事件处理 255
8.8复习和提高 255
8.8.1复习 255
8.8.2提高 256
8.9小结 256
第9章JavaScript与浏览器 258
9.1使用对话窗口 260
9.1.1警告对话框 260
9.1.2确认对话框 261
9.1.3提示对话框 261
9.1.4自定义对话框 262
9.2处理窗口 262
9.2.1 window全局对象 263
9.2.2操纵窗口的大小和位置 264
9.2.3屏幕属性 266
9.2.4创建新窗口 266
9.2.5自定义弹出窗口 267
9.2.6改变焦点 268
9.2.7可访问解决方案 269
9.2.8窗口之间的通信 271
9.2.9处理浏览器历史 273
9.2.10重定向浏览器 274
9.2.11创建具有表现力的URL 276
9.2.12打印本页 278
9.2.13文档对象 278
9.3操纵DOM 279
9.3.1 DOM基础 279
9.3.2 DOM快捷方式 281
9.3.3使用DOM操纵 282
9.3.4 DOM方法 283
9.3.5 CSS选择符 284
9.3.6修改元素 285
9.3.7创建元素 287
9.4 JavaScript与CSS 291
9.4.1引用单独的样式 291
9.4.2隐藏和显示元素 292
9.4.3.创建模态窗口 293
9.4.4引用样式表 297
9.5使用Cookie 298
9.5.1创建Cookie 299
9.5.2读取Cookie 300
9.5.3删除Cookie 301
9.5.4创建一个Cookie程序库 301
9.5.5使用Cookie程序库 303
9.6使用定时器 307
9.7复习与提高 309
9.7.1复习 310
9.7.2提高 310
9.8小结 311
第10章 处理表单 313
10.1表单一般考虑事项 315
10.1.1创建错误信息 316
10.1.2创建工具提示 319
10.1.3禁用提交按钮 321
10.2文本输入域和文本区域 322
10.2.1文本输入域和文本区域基础知识 322
10.2.2实现自动完成 323
10.3选择菜单 324
10.3.1验证选择菜单 324
10.3.2创建动态选择框 325
10.4复选框 329
10.5单选按钮 332
10.6处理文件上传 333
10.7正则表达式 335
10.7.1什么是正则表达式 335
10.7.2创建一个正则表达式 336
10.7.3正则表达式函数 336
10.7.4定义简单的模式 338
10.7.5使用限定符 340
10.7.6使用字符类 342
10.8汇总 344
10.9复习与提高 349
10.9.1复习 349
10.9.2提高 350
10.10小结 351
第11章Ajax 352
11.1 Ajax基础知识 354
11.1.1理解Ajax 354
11.1.2创建一个Ajax对象 354
11.1.3指定结果处理器 356
11.1.4发出请求 356
11.1.5处理服务器响应 358
11.1.6发送数据 362
11.1.7基本调试 364
11.2处理其他数据 367
11.2.1 XML 367
11.2.2 JSON 368
11.3服务器端脚本 371
11.3.1返回普通文本 371
11.3.2返回XML 372
11.3.3返回JSON 373
11.4 Ajax示例 374
11.4.1显示进度 374
11.4.2完成第2章中的登录示例 376
11.4.3创建一个Ajax联络表单 378
11.4.4预加载数据 381
11.4.5使用定时器的股票报价 385
11.5复习与提高 388
11.5.1复习 388
11.5.2提高 389
11.6小结 389
第3部分 后续步骤 391
第12章 错误管理 392
12.1捕捉和抛出错误 394
12.1.1捕捉错误 394
12.1.2finally子句 395
12.1.3抛出异常 396
12.1.4汇总 397
12.2使用断言 398
12.2.1创建断言函数 398
12.2.2 Firebug中的断言 400
12.3单元测试 400
12.3.1安装jsUnity 401
12.3.2定义测试 401
12.3.3运行测试 402
12.3.4记录结果 402
12.3.5建立和拆除 403
12.3.6汇总 403
12.4复习与提高 406
12.4.1复习 406
12.4.2提高 406
12.5小结 407
第13章 框架 408
13.1选择框架 410
13.2 jQuery简介 411
13.2.1 jQuery入门 412
13.2.2选择元素 413
13.2.3操纵元素 414
13.2.4 DOM操纵 415
13.2.5处理事件 416
13.2.6创建特效 417
13.2.7实施Ajax操作 418
13.2.8 jQuery插件 419
13.3 YUI简介 424
13.3.1 YUI入门 425
13.3.2选择元素 426
13.3.3操纵元素 427
13.3.4 DOM操纵 428
13.3.5处理事件 429
13.3.6创建特效 429
13.3.7执行Ajax 429
13.3.8使用小部件和工具 431
13.4库 436
13.5复习与提高 437
13.5.1复习 437
13.5.2提高 438
13.6小结 439
第14章 高级JavaScript 440
14.1定义命名空间 442
14.2创建自定义对象 443
14.2.1创建单个自定义对象 443
14.2.2创建自定义对象的多个实例 444
14.2.3更完整的自定义对象 446
14.2.4汇总 446
14.3理解原型 449
14.3.1原型化继承 449
14.3.2添加原型方法 450
14.4使用闭包 452
14.5备选类型标识 456
14.6精简代码 458
14.7复习与提高 459
14.7.1复习 459
14.7.2提高 460
14.8小结 460
第15章 PHP和JavaScript的结合 462
15.1确定目标 464
15.2创建数据库 465
15.3建立网站 467
15.4编写非JavaScript版本 468
15.4.1列出拍卖 469
15.4.2登录 471
15.4.3查看单个拍卖 472
15.5创建Ajax资源 476
15.5.1登录Ajax脚本 477
15.5.2用于出价的Ajax脚本 477
15.5.3获取出价的Ajax脚本 478
15.6添加JavaScript 479
15.6.1编写login.js 479
15.6.2在View.php中编写JavaScript 483
15.6.3编写view.js 485
15.7完成示例 493
15.8复习与提高 494
15.8.1复习 494
15.8.2提高 494
15.9小结 495