《Java Script程序员参考手册》PDF下载

  • 购买积分:24 如何计算积分?
  • 作  者:(美)怀特著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:9787302254256
  • 页数:912 页
图书介绍:本书从整体上介绍了JavaScript语言,详细讲解了如何使用Ajax、JSON等许多相关技术,利用JavaScript的众多功能遵循标准的下一代富Internet应用程序。

第1章 JavaScript简介 1

1.1 JavaScript的历史 1

1.2 展望ES5和ECMAScriptHarmony 2

1.3 JavaScript开发人员的舞台 3

1.4 真实世界中的JavaScript 4

1.4.1 浏览器中的JavaScript 4

1.4.2 服务器端的JavaScript 5

1.4.3 ActionScript和Flash 6

1.4.4 Adobe Integrated Runtime(AIR) 7

1.4.5 在其他的Adobe产品中 7

1.4.6 桌面窗口部件(Widget) 7

1.5 互补的其他技术 7

1.5.1 超文本标记语言(HTML) 7

1.5.2 层叠样式表(CSS) 8

1.5.3 浏览器对象模型(BOM) 9

1.5.4 文档对象模型(DOM) 10

1.6 使用JavaScript的场合 10

1.7 主要的JavaScript引擎 12

1.7.1 引擎所支持的ECMAScript 13

1.7.2 一般等价性 14

1.7.3 JavaScript引擎的性能 15

1.8 基本开发工具 16

1.8.1 选择一种文本编辑器 16

1.8.2 Web服务器 17

1.8.3 测试浏览器 18

1.9 第一个JavaScript应用程序 18

1.10 小结 20

第2章 浏览器中的JavaScript 21

2.1 文档对象模型 21

2.2 <script>元素 22

2.3 隐藏脚本 24

2.4 <noscript>元素 24

2.5 执行和加载脚本的顺序 25

2.5.1 内联脚本 25

2.5.2 外部脚本 27

2.5.3 延迟脚本的执行 27

2.5.4 以事件驱动方式执行脚本 28

2.5.5 动态加载JavaScript脚本 30

2.6 在URL中执行JavaScript代码 31

2.7 跨浏览器的兼容性 32

2.8 小结 33

第3章 JavaScript基础 35

3.1 一般特性 35

3.1.1 一种动态语言 35

3.1 2 基于原型的语言 36

3.1 3 字符编码 36

3 1.4 区分大小写 37

3.1.5 空白和分号 37

3.1.6 字面量 38

3.1.7 语句 42

3.1.8 块 42

3.1.9 闭包 43

3 1.10 注释 43

3.1.11 保留字 43

3.2 变量 44

3.2.1 声明变量 44

3.2.2 隐式声明 44

3.2.3 标识符 45

3.2.4 弱类型化 45

3.2.5 内存和垃圾回收 46

3.3 数据类型 46

3.3.1 基本数据类型与引用类型 46

3.3.2 操纵值类型与操纵引用类型 47

3.3.3 Null和Undefined 48

3.3.4 确定变量的类型 49

3.3.5 类型转换 49

3.3.6 基本类型与基本对象 52

3.4 小结 53

第4章 表达式、操作符和语句 55

4.1 JavaScript中的表达式 55

4.2 JavaScript中的操作符 56

4.2.1 操作符的类型 56

4.2.2 比较操作符 56

4 2.3 赋值操作符 60

4.2.4 逻辑操作符 62

4.2.5 按位操作符 64

4.2.6 组合操作符 67

4.2.7 其他类型的操作符 68

4.2.8 操作符的优先级和结合性 72

4.3 JavaScript语句 74

4.3.1 条件语句 76

4.3.2 循环和迭代 79

4.3.3 函数语句 88

4.3.4 异常处理语句 88

4.3.5 杂项语句 91

4.4 小结 93

第5章 函数 95

5.1 函数对象 95

5.2 声明函数 96

5.3 传递参数:传递值参数与传递引用参数 98

5.4 返回值 99

5.5 变量的作用域 99

5.6 函数重载 101

5.6.1 可选参数 104

5.6.2 arguments对象 106

5.6.3 散列参数 107

5.7 嵌套函数 110

5.8 闭包 110

5.8.1 使用闭包 111

5.8.2 循环内的闭包 113

5.8.3 循环引用 115

5.8.4 意外的闭包 117

5.9 执行上下文和作用域 117

5.9.1 使用apply()方法 118

5.9.2 使用call()方法 119

5.10 小结 119

第6章 全局对象和Object对象 121

6.1 全局对象的特性 121

6.2 浏览器中的全局对象 121

6.3 获取全局对象 122

6.4 全局属性 123

6.5 全局函数 124

6.5.1 URI编码 125

6.5.2 计算的代码 126

6.5.3 数值的辅助方法 127

6.6 全局对象类 128

6.7 Object对象 128

6.7.1 对象的原型 130

6.7.2 检查是否存在指定的属性 131

6.7.3 valueOf()和toString()方法 131

6.7.4 对Object对象非常有用的实用程序 132

6.8 小结 138

第7章 String和RegExp对象 139

7.1 String对象概述 139

7.2 字符串基础 140

7.2.1 字符串字面量 140

7.2.2 编码字符串 141

7.2.3 字符串中的换行符 143

7.2.4 字符串的不变性 144

7.2.5 字符串的长度 144

7.2.6 字符串是基本类型还是对象类型 145

7.2.7 扩展String对象 147

7.2.8 字符串的连接 148

7.2.9 字符串和数值 150

7.2 10 将其他类型的数据转换为字符串 150

7.2.11 字符串的比较 151

7.3 使用字符串 153

7.3.1 格式化方法 153

7.3.2 处理大小写 156

7.3.3 搜索和替换 157

7.3.4 截取字符串 179

7.3.5 字符串和数组 183

7.3.6 编码用于URL的字符串 184

7.4 小结 184

第8章 Boolean、Number和Math对象 187

8.1 Boolean对象 187

8.1.1 Boolean对象概述 187

8.1.2 使用布尔值 188

8.1.3 转换为布尔类型 189

8.1.4 为Boolean对象添加XOR功能 190

8.2 Number对象 190

8.2.1 Number对象概述 191

8.2.2 整数值和浮点数值 191

8.2.3 Number字面量 192

8.2.4 数值和字符串 192

8.2.5 将其他类型的数据转换为数值 194

8.2.6 NaN和Infinity 195

8.2.7 最大值和最小值 196

8.3 Math对象 197

8.3.1 Math对象概述 197

8.3.2 数学常量 198

8.3.3 Math对象的实用程序 199

8.3.4 使用round()函数进行取整 200

8.3.5 随机数 200

8.3.6 简化对Math对象的重复调用 201

8.4 小结 202

第9章 Array和Date对象 203

9.1 Array对象 203

9.1.1 Array对象概述 203

9.1.2 创建数组 204

9.1.3 以索引的方式访问数组 205

9.1.4 多维数组 206

9.1.5 检测数组 206

9.1.6 数组的大小 209

9.1.7 遍历数组 209

9.2 向数组添加元素 210

9.2.1 合并数组 211

9.2.2 从数组中移除元素 213

9.2.3 关联数组(散列表) 215

9.2.4 数组是一种引用类型 217

9.2.5 数组和字符串 219

9.3 Date对象 220

9.3.1 Date对象概述 220

9.3.2 创建日期对象 222

9.4 世界时间概述 223

9.4.1 分析日期字符串 224

9.4.2 读取或写入日期数据 225

9.4.3 测量时间差 230

9.4.4 计时器和间隔触发 230

9.5 小结 233

第10章 面向对象开发 235

10.1 面向对象的JavaScript 235

10.2 创建对象 237

10.3 删除属性和对象 237

10.4 对象是引用类型 238

10.5 将对象作为数组使用 238

10.6 比较对象 240

10.7 克隆对象 241

10.8 静态成员 241

10.9 构造函数 242

10.10 原型 243

10.11 this关键字 244

10.12 私有成员 245

10.12.1 特权成员 246

10.12.2 Get存取器和Set存取器 247

10.13 JavaScript中的继承 248

10.13.1 基于原型的继承 249

10.13 2 原型的问题 251

10.13.3 实现继承的其他方式 252

10.14 小结 254

第11章 窗口和框架 255

11.1 浏览器对象模型简介 255

11.2 window对象 256

11.3 使用框架 257

11.3.1 创建框架 257

11 3.2 Frame对象模型 258

11.3.3 引用框架 258

11.4 操纵浏览器窗口 259

11.4 1 状态栏 260

11.4.2 打开和关闭浏览器窗口 260

11.4.3 设置窗口的location 267

11.4.4 编码URL中的字符串 268

11.4.5 窗口的历史记录 270

11.4.6 移动窗口和改变窗口的尺寸 270

11.4.7 滚动窗口 270

11.5 对话框和警告消息框 271

11.6 获取浏览器和操作系统信息 272

11.6.1 浏览器检测基础 272

11.6.2 navigator对象 274

11.6.3 语言检测 275

11.6.4 screen对象 275

11.6.5 浏览器和操作系统信息检测类 276

11.7 窗口事件 282

11.8 小结 283

第12章 事件 285

12.1 基础的事件模型 286

12.2 注册基础 288

12.3 阻止事件的默认行为 290

12.4 非侵扰式JavaScript 291

12.5 非侵扰式事件注册 292

12.5.1 检测事件监听器 294

12.5.2 事件对象 294

12.5.3 一个跨浏览器的事件实用程序 297

12.6 事件的传播 298

12.6.1 IE鼠标事件的捕获模式 301

12.6.2 默认的事件处理程序 302

12.6.3 阻止事件的传播 302

12.7 生成事件 303

12.8 常见的事件绑定 305

12.8.1 检测键盘按键 305

12.8.2 鼠标位置 306

12.8.3 scroll事件 308

12.8.4 resize事件 309

12.8.5 load和unload事件 309

12.8.6 domready事件 310

12.8.7 mouseenter事件和mouseleave事件 312

12.9 事件的兼容性 315

12.10 白定义事件 317

12.11 小结 318

第13章 文档对象模型 321

13.1 DOM的历史 321

13.1.1 最早的DOM模型 322

13.1.2 增加了Images集合的基本模型 322

13.1.3 Navigator 4的扩展 323

13.1.4 Internet Explorer 4的扩展 323

13.1.5 Internet Explorer 5的扩展 324

13.1.6 W3C的标准DOM模型 324

13.2 文档类型 325

13.2.1 怪异模式的特点 326

13.2.2 检测DOCTYPE 326

13.3 Document树 327

13.4 节点类型 328

13.5 节点属性 329

13.6 节点的方法 330

13.7 implementation对象 330

13.8 遍历DOM 331

13.9 元素的属性 334

13.10 查找特定的元素 337

13.10.1 元素集合 337

13.10.2 getElementsByName 338

13.10.3 getElementsByTagName 338

13.10.4 getElementByld 339

13.10.5 XPath 339

13.11 创建和删除节点 340

13.11.1 添加新的节点 340

13.11.2 重绘和重新布局 342

13.11.3 文档片段 343

13.11.4 修改DOM方式的性能比较 343

13.11.5 移除节点 344

13.11.6 替换节点 345

13.12 DOM范围 345

13.12.1 DOM中的范围 345

13.12.2 范围的边界 347

13.12.3 改变内容 348

13.12.4 折叠范围 348

13.12.5 用户选择集范围 349

13.13 小结 351

第14章 表单 353

14.1 Form对象 353

14.2 表单元素 356

14.3 基本的表单操作 359

14.3.1 提交表单和复位表单 359

14.3.2 使用onsubmit事件 359

14.3.3 阻止Enter键提交表单 360

14.3.4 启用和禁用表单字段 361

14.3.5 阻止重复提交表单 362

14.3.6 将输入焦点设置到表单字段 363

14.4 使用表单的输入元素 363

14.4.1 命令按钮 363

14.4.2 复选框 364

14.4.3 单选按钮 365

14.4.4 单选列表框和多选列表框 367

14.4.5 文本框、textarea和密码框 369

14.4.6 隐藏字段 373

14.4.7 文件输入字段 373

14.5 富文本字段(WYSIWYG) 374

14.6 小结 379

第15章 层叠样式表 381

15.1 概述 381

15.1.1 在文档中嵌入CSS 381

15.1.2 版本 383

15.1.3 样式表是如何层叠的 385

15.1.4 CSS和DOM 385

15.2 styleSheet对象和Style对象 390

15.3 导入的样式表 392

15.4 遍历所有的样式表 392

15.5 添加和移除样式表 395

15.6 遍历所有的规则 396

15.7 读取和写入样式属性 397

15.8 添加和移除样式规则 399

15.9 最终样式表 401

15.10 IE的filter对象 402

15.11 小结 403

第16章 动态HTML 405

16.1 CSS的地位 406

16.2 窗口和文档的几何尺寸 407

16.3 获取滚动条的宽度 409

16.4 元素的度量 411

16.5 图像切换和翻转 412

16.6 定位 416

16.6.1 绝对定位和相对定位 416

16.6.2 zIndex的脚本编程 419

16.6.3 获取元素的绝对位置 420

16.7 动画 424

16.7.1 使用计时器创建伪线程 424

16.7.2 非线性动画和补问动画 426

16.8 颜色和不透明度 429

16.8.1 颜色 430

16.8.2 淡入淡出效果 430

16.8.3 不透明度 431

16.8.4 Internet Explorer和32Bit图像 431

16.9 模态对话框 432

16.10 表单提示工具 439

16.11 小结 444

第17章 JavaScript安全 447

17.1 安全模型 447

17.2 同源策略 448

17.2.1 使用document.domain的例外 449

17.2.2 跨站脚本攻击 449

17.2.3 跨站伪造请求 450

17.2.4 搭载传送 450

17.3 签名脚本 451

17.3.1 Mozilla中要求扩展特权的特性 451

17.3.2 Internet Explorer中的签名脚本 451

17.4 安全策略和安全区域 452

17.4.1 Mozilla的安全策略 452

17.4.2 Internet Explorer中的安全区域 453

17.5 其他安全问题 454

17.5.1 浏览器的新窗口 454

17.5.2 拒绝服务 454

17.5.3 数据的安全性 454

17.5.4 ActiveX 455

17.5.5 F1ash 456

17.5.6 JSON和eval()函数 456

17.6 小结 456

第18章 客户端数据和持久化 459

18.1 持久化数据的各种方法 460

18.2 cookie 460

18.2.1 创建和读取cookie 461

18.2.2 删除cookie 463

18.3 Internet Explorer中的UserData 463

18.3.1 初始化UserData 464

18.3.2 读取和写入UserData 465

18.4 W3C的DOM存储 466

18.4.1 读取和写入DOM存储 467

18.4.2 使用DOM存储事件 467

18.5 HTML 5客户端数据库 469

18.5.1 创建SQLite数据库 469

18.5.2 读取和写入SQLite数据 471

18.5.3 Safari的SQLite数据库浏览器 472

18.6 Flash本地共享对象 473

18.7 使用window.name存储数据 476

18.8 小结 479

第19章 Ajax 481

19.1 XMLHttpRequest 482

19.1.1 打开一个连接 484

19.1.2 请求和响应的头信息 487

19.2 安全 488

19.3 跨域Ajax 489

19.3.1 跨域通信方法的比较 489

19.3.2 document.domain 490

19.3.3 服务器代理 490

19.3.4 iFrame 491

19.3.5 图像注入 491

19.3.6 脚本注入 492

19.3.7 用Flash实现跨域通信的方式 492

19.3.8 跨域XMLHttpRequest 493

19.4 历史纪录和书签 494

19.5 小结 500

第20章 使用XML 501

20.1 加载XML 501

20.1.1 反序列化文本 501

20.1.2 加载外部XML文档 504

20.1.3 错误处理 506

20.2 将XML序列化为Text 507

20.3 使用XML DOM API 508

20.3.1 元素和节点 508

20.3.2 遍历DOM 509

20.3.3 执行XPath查询 511

20.4 使用XSLT转换数据 515

20.5 E4X 519

20.6 小结 520

第21章 使用JSON 521

21.1 从JavaScript字面量到JSON 522

21.2 标签和编码 523

21.3 计算JSON代码 524

21.4 安全问题 525

21.5 JSoN与XML 525

21.6 将对象序列化为JSON 526

21.6.1 自定义toJSON()方法 528

21.6.2 使用Replacer 529

21.7 加载JSON数据 530

21.7.1 自定义Reviver 531

21.7.2 错误处理 532

21.7.3 JSON和Ajax 533

21.7.4 JSONP 534

21.8 小结 536

第22章 特有的浏览器功能 537

22.1 加速器 537

22.2 canvas 539

22.3 条件编译 541

22.4 CSS变换 542

22.5 地理定位 544

22.5.1 检测是否支持geolocation 544

22.5.2 获取坐标 545

22.6 Google Gears 546

22.6.1 检测并安装Gears 546

22.6.2 使用数据库 546

22.6.3 使用geolocation 547

22.6.4 使用WorkerPool 548

22.7 搜索服务提供者 549

22.8 矢量图形标记语言 550

22.9 Web Workers 551

22.10 终止一个Worker 552

22.11 小结 553

第23章 插件与脚本编程 555

23.1 Java Applets 555

23.2 Flash电影 558

23.2.1 创律Flash电影 559

23.2.2 使用SWFObject嵌入Flash电影 562

23.2.3 访问Flash电影的属性和方法 562

23.3 Silverlight电影 564

23.3.1 建立一个Silverlight应用程序 564

23.3.2 使用JavaScript嵌入Silverlight电影 566

23.3.3 RegisterScriptableObject介绍 566

23.3.4 JavaScfipt与Silverlight的通信 568

23.4 QuickTime 569

23.4.1 检测QuickTime 569

23.4.2 嵌入QuickTime电影 570

23.4.3 在JavaScfipt中控制QuickTime电影 571

23.4.4 QuickTime电影的事件 573

23.5 小结 575

第24章 调试 577

24.1 错误的类型 577

24.2 Error对象概述 578

24.3 抛出错误 579

24.4 错误处理程序 580

24.5 跟踪调用栈 581

24.6 调试工具 583

24.6.1 用于Firefox的Firebug 583

24.6.2 Firebug Lite 586

24.6.3 Internet Explorer Developer Toolbar 587

24.6.4 Opera的Dragonfly 588

24.6.5 Fiddler 588

24.6.6 Charles Proxy Debugger 589

24.6.7 Safari Web Inspector 589

24.7 测试 590

24.8 小结 591

第25章 性能调整 593

25.1 减少页面重量 594

25.1.1 post-loaded脚本请求 595

25.1.2 缓存 595

25.1.3 子图像 596

25.1.4 缩减并串接JavaScript 596

25.1.5 gZip压缩 597

25.1.6 内容分发网络 597

25.2 代码分析 598

25.2.1 使用Firebug进行代码分析 598

25.2.2 IE8 JScfipt Profiler 598

25.2.3 使用YSlow获得总体分析 599

25.3 代码优化 599

25.3.1 删除无用的对象 600

25.3.2 避免对代码计算 600

25.3.3 查找局部变量和查找全局变量 601

25.3.4 对象和函数指针 602

25.3.5 避免使用with语句 602

25.3.6 避免在重复操作中使用try…catch语句 603

25.3.7 重复for…in循环 604

25.3.8 改进循环的性能 604

25.4 DHTML优化 605

25.4.1 重绘和重新布局 605

25.4.2 先隐藏元素再修改样式 606

25.4.3 以成组方式改变DOM 606

25.4.4 以成组方式改变样式 607

25.4.5 测量元素 607

25.4.6 使用文档片段 608

25.4.7 线程处理需要长时间运行的任务 608

25.5 小结 609

附录A 核心JavaScript语言 611

附录B JavaScript全局对象 679

附录C JavaScript全局属性 837

附录D JavaScript全局函数 841

附录E 保留字和特殊字 849

附录F 文档对象参考 851

附录G Web上的资源 911