《JavaScript完全参考手册 第3版》PDF下载

  • 购买积分:23 如何计算积分?
  • 作  者:(美)鲍威尔,(美)施奈德著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302342779
  • 页数:889 页
图书介绍:全书共25章,内容包括JavaScript简介、JavaScript核心功能、数据类型和变量、运算符、表达式、语句、函数、对象、数组、日期、正则表达式、JavaScript对象模型、标准DOM、事件处理、Cnt.Windows及帧、处理文档和表单、DHTML和Canvas、UI、浏览器检测、Cookies及一致性、JS及嵌入式对象、Ajax和远程JS、JavaScript和XML、浏览器特性的JS、JavaScript安全等。

第Ⅰ部分概 述 3

第1章 JavaScript介绍 3

1.1 Hello JavaScript World 3

1.2 向XHTML文档添加JavaScript 7

1.2.1 <script>元素 7

1.2.2 事件处理程序 11

1.2.3 链接脚本 13

1.2.4 Javascript伪URL 15

1.3 使用JavaScript的考虑事项 17

1.3.1 脚本屏蔽 17

1.3.2 <noscript>元素 18

1.3.3 语言版本 20

1.3.4 跨浏览器考虑 24

1.3.5 与其他脚本混用 25

1.4 JavaScript:真正的编程语言 26

1.4.1 JavaScript的历史 27

1.4.2 JavaScript的常见用途 28

1.4.3 JavaScript库的崛起 30

1.4.4 JavaScript的未来 31

1.5 小结 32

第2章 JavaScript核心语言特征概述 33

2.1 基本定义 33

2.2 执行顺序 34

2.3 区分大小写 34

2.4 空白符 35

2.5 语句 36

2.5.1 分号 36

2.5.2 代码块 37

2.6 变量 38

2.7 基本数据类型 38

2.7.1 弱类型 39

2.7.2 类型转换 40

2.8 复合类型 42

2.8.1 对象 43

2.8.2 数组 46

2.8.3 函数作为数据类型 47

2.8.4 正则表达式字面值与对象 48

2.9 表达式 48

2.9.1 算术运算符 48

2.9.2 位运算符 49

2.9.3 赋值运算符 49

2.9.4 逻辑运算符 51

2.9.5 条件运算符 51

2.9.6 类型运算符 51

2 9.6 逗号运算符 52

2.9.7 关系运算符 52

2.9.8 运算符的优先级与结合性 53

2.10 流程控制 54

2.11 循环 55

2.12 JavaScript中的输入与输出 58

2.13 函数 62

2.14 作用域规则 64

2.15 正则表达式 65

2.16 异常 66

2.17 注释 67

2.18 ECMAScript 5的变化 68

2.18.1 “use strict” 68

2.18.2 原生JSON支持 69

2.18.3 Function.prototype.bind() 69

2.18.4 ISO日期 69

2.18.5 数组新增的原生特征 70

2.18.6 String.prototype.trim() 70

2.18.7 对象/属性的新增特征 70

2.18.8 新兴特征 71

2.19 小结 71

第Ⅱ部分核心语言 75

第3章 数据类型与变量 75

3.1 关键概念 75

3.2 JavaScript的基本类型 77

3.2.1 数字类型 77

3.2.2 字符串 83

3.2.3 布尔类型 87

3.2.4 undefined类型与null 88

3.3 复合类型 89

3.3.1 对象 89

3.3.2 数组 91

3.3.3 函数 92

3.3.4 typeof运算符 93

3.4 类型转换 94

3.4.1 基本类型的转换规则 95

3.4.2 基本数据类型提升为对象 97

3.4.3 显式类型转换 97

3.5 变量 99

3.5.1 标识符 99

3.5.2 变量声明 103

3.5.3 隐式变量声明 104

3.5.4 变量的作用域 105

3.6 常量 109

3.7 小结 110

第4章 运算符、表达式和语句 111

4.1 语句基础 111

4.1.1 空白符 111

4.1.2 结束:分号与返回 112

4.1.3 代码块 113

4.2 运算符 114

4.2.1 赋值运算符 114

4.2.2 算术运算符 115

4.2.3 位运算符 118

4.2.4 移位运算符 119

4.2.5 算术运算符以及位运算符与赋值运算符的组合 120

4.2.6 递增与递减运算符 121

4.2.7 比较运算符 123

4.2.8 逻辑运算符 125

4.2.9 “?”运算符 125

4.2.10 逗号运算符 126

4.2.11 void运算符 127

4.2.12 typeof 128

4.2.13 对象运算符 128

4.2.14 运算符的优先级与结合性 130

4.3 核心JavaScript语句 132

4.3.1 if语句 132

4.3.2 switch语句 136

4.3.3 while循环 139

4.3.4 do-while循环 141

4.3.5 for循环 142

4.3.6 使用continue和break控制循环 143

4.3.7 与对象相关的语句 146

4.3.8 其他语句 148

4.4 小结 148

第5章 函数 149

5.1 函数基础 149

5.1.1 参数传递基础 150

5.1.2 返回语句 152

5.1.3 参数传递:输入和输出 152

5.2 全局变量和局部变量 154

5.2.1 针对作用域的变量命名 156

5.2.2 内部函数 157

5.3 闭包 159

5.4 函数作为对象 160

5.4.1 函数字面值 161

5.4.2 静态变量 163

5.4.3 高级参数传递 164

5.4.4 Function的高级属性与方法 166

5.5 递归函数 168

5.6 小结 170

第6章 对象 171

6.1 JavaScript中的对象 171

6.2 对象基础 172

6.2.1 对象创建 173

6.2.2 对象销毁与垃圾回收 175

6.2.3 属性 175

6.2.4 对象是引用类型 180

6.2.5 通用属性和方法 185

6.3 面向对象的JavaScript 186

6.3.1 基于原型的对象 187

6.3.2 构造函数 188

6.3.3 原型 190

6.3.4 类属性 192

6.3.5 通过原型链继承 193

6.3.6 改写默认的方法和属性 198

6.4 ECMAScript 5的面向对象变化 198

6.5 JavaScript的面向对象真相 202

6.6 小结 203

第7章 数组、日期、数学对象以及与类型相关的对象 205

7.1 数组 205

7.1.1 访问数组元素 206

7.1.2 添加和修改数组元素 207

7.1.3 移除数组元素 208

7.1.4 length属性 209

7.1.5 将数组作为栈和队列 212

7.1.6 操作数组 213

7.1.7 多维数组 219

7.1.8 使用原型扩展数组 220

7.1.9 ECMAScript 5中的数组新增特征 221

7.2 Boolean对象 236

7.3 Date对象 237

7.3.1 创建日期 237

7.3.2 操作日期 238

7.3.3 ECMAScript 5中的Date新增特征 243

7.4 Global对象 244

7.5 Math对象 247

7.6 Number对象 249

7.7 字符串 250

7.7.1 检查字符串 251

7.7.2 操作字符串 252

7.7.3 将字符串标记为传统的HTML 253

7.7.4 ECMAScript 5中的字符串变换 255

7.8 小结 256

第8章 正则表达式 257

8.1 正则表达式的需求 257

8.2 JavaScript正则表达式介绍 258

8.3 RegExp对象 270

8.3.1 test() 270

8.3.2 子表达式 271

8.3.3 compile() 272

8.3.4 exec() 272

8.3.5 RegExp属性 276

8.4 字符串的正则表达式 280

8.4.1 search() 280

8.4.2 split() 281

8.4.3 replace() 282

8.4.4 match() 284

8.5 高级正则表达式 285

8.5.1 多行匹配 285

8.5.2 非捕获圆括号 286

8.5.3 向前匹配 286

8.5.4 贪婪匹配 287

8.6 正则表达式的局限 288

8.7 小结 289

第9章 JavaScript对象模型 291

9.1 对象模型概述 291

9.2 最初的JavaScript对象模型 293

9.3 Document对象 294

9.3.1 根据位置访问文档元素 298

9.3.2 根据名称访问文档元素 300

9.4 简单事件处理 304

9.4.1 设置内联事件处理程序 304

9.4.2 直接为事件处置程序赋值 304

9.4.3 设置事件侦听器 305

9.4.4 调用事件处理程序 307

9.5 JavaScript+DOM+选择+事件=程序 308

9.6 JavaScript对象模型的演化 310

9.6.1 浏览器对象模型的早期演化 311

9.6.2 面向DHTML的对象模型 313

9.6.3 Internet Explorer 4的DHTML对象模型 314

9.6.4 超越DHTML对象模型 315

9.7 小结 315

第10章 标准文档对象模型 317

10.1 DOM特色 317

102文档树 320

10.3 基本的元素访问:getElementById() 324

10.4 其他元素访问方法 332

10.4.1 getElementByName() 332

10.4.2 通用JavaScript集合 333

10.4.3 getElementByTagName() 335

10.4.4 通用的树遍历开始点 336

10.4.5 document.getElement-ByClassName() 338

10.4.6 querySelector()与querySelectorAll() 340

10.5 创建节点 343

10.6 追加和插入节点 344

10.6.1 文本节点和normalize()方法 345

10.6.2 insertBefore()方法 346

10.6.3 其他插入方法 347

10.7 动态标记插入 349

10.7.1 innerHTML 349

10.7.2 outerHTML 352

10.8 innerText和outerText 352

10.8.1 insertAdjacentHTML()和insertAdjacentText() 354

10.8.2 document.write()和document.writeln() 355

10.9 复制节点 356

10.10 删除和替换节点 357

10.11 操作特性 361

10.12 其他节点方法 366

10.13 名称空间 367

10.14 DOM和HTML元素 368

10.15 DOM表格操作 381

10.16 DOM和CSS 383

10.16.1 内联样式操作 383

10.16.2 使用类别和集合的动态样式 389

10.16.3 计算样式 393

10.16.4 访问复杂样式规则 394

10.17 DOM遍历API 396

10.18 DOM范围选择 398

10.19 不断持续的DOM演化 399

10.20 小结 399

第11章 事件处理 401

11.1 事件和事件处理概述 401

11.2 传统的事件处理模型 402

11.2.1 使用HTML特性的事件绑定 403

11.2.2 使用JavaScript绑定事件处理程序特性 410

11.2.3 事件处理程序作用域的细节 412

11.2.4 返回值 414

11.2.5 手动触发事件 415

11.3 现代事件模型概述 417

11.4 Internet Explorer的专有模型 418

11.4.1 attachEvent()和detachEvent() 419

11.4.2 事件对象 420

11.4.3 事件冒泡 423

11.4.4 模拟事件传递 425

11.4.5 事件创建 426

11.5 DOM事件模型 427

11.5.1 传统绑定的变化 427

11.5.2 addEventListener()和removeEventListener() 428

11.5.3 事件对象 430

11.5.4 阻止默认动作 432

11.5.5 控制事件传播 433

11.5.6 事件创建 435

11.6 事件类型 437

11.6.1 鼠标事件 437

11.6.2 UI事件 442

11.6.3 焦点事件 443

11.6.4 键盘事件 444

11.6.5 文本事件 446

11.6.6 突变事件 448

11.6.7 非标准事件 448

11.6.8 自定义事件 449

11.6.9 浏览器状态和加载事件 451

11.7 事件模型的问题 454

11.8 小结 455

第Ⅲ部分JavaScript应用 459

第12章 窗口、框架和重叠 459

12.1 窗口对象介绍 459

12.2 对话框 464

12.2.1 alert() 464

12.2.2 confirm() 465

12.2.3 prompt() 466

12.3 新兴的和专用的对话方法 468

12.3.1 showModalDialog() 468

12.3.2 showModallessDialog() 469

12.3.3 createPopup() 469

12.4 打开和关闭通用窗口 471

12.5 检测和控制窗口小件(chrome) 480

12.6 产生窗口的实际操作 481

12.6.1 构建窗口内容 482

12.6.2 覆盖物不是窗口 488

12.7 控制窗口 492

12.7.1 focus()和blur() 492

12.7.2 stop() 492

12.7.3 print() 492

12.7.4 find() 493

12.7.5 移动窗口 494

12.7.6 改变窗口大小 495

12.7.7 滚动窗口 495

12.7.8 访问和设置窗口的地址 500

12.7.9 URL中的哈希值 504

12.8 操作窗口的历史 506

12.8.1 pushstate()和replacestate() 506

12.8.2 尝试控制窗口的状态栏 509

12.9 为窗口设置超时计时器和周期性计时器 511

12.10 窗口事件 514

12.11 窗口间通信基础 517

12.12 框架:窗口的特例 521

12.12.1 内联框架 526

12.12.2 应用框架 527

12.13 小结 531

第13章 表单处理 533

13.1 JavaScript表单检查的必要性 533

13.2 表单基础 534

13.3 表单字段 538

13.3.1 输入元素的通用属性 538

13.3.2 按钮 540

13.3.3 传统的文本字段 544

13.3.4 HTML5语义文本域 547

13.3.5 文本域 549

13.3.6 复选框和单选按钮 551

13.3.7 选择菜单 554

13.3.8 日期选择器 558

13.3.9 颜色拾取器 560

13.3.10 滑块 561

13.3.11 文件上传域 562

13.3.12 隐藏字段 566

13.3.13 其他表单特征:标签、字段集和图例 567

13.4 表单的可用性与JavaScript 567

13.4.1 第一个字段具有焦点 568

13.4.2 标签和字段选择 568

13.4.3 报告和状态消息 569

13.4.4 数据列表 571

13.4.5 禁用字段和只读字段 572

13.5 表单验证 573

13.5.1 抽象表单验证 575

13.5.2 错误消息 584

13.5.3 onchange处理程序 587

13.5.4 键盘屏蔽 588

13.6 HTML5验证的改进 589

13.6.1 验证特性 589

13.6.2 用于验证的属性和方法 592

13.6.3 novalidate特性 593

13.7 HTML5表单的其他变化 593

13.8 国际化 595

13.9 小结 595

第14章 用户界面元素 597

14.1 添加JavaScript 597

14.1.1 探讨逐渐增强 601

14.1.2 优美降级方法 606

14.2 HTML5对富交互的支持 608

14.2.1 菜单和上下文菜单 608

14.2.2 拖放功能 616

14.2.3 内容编辑 624

14.2.4 根据要求显示内容 629

14.2.5 用户反馈 630

14.3 小结 632

第15章 Ajax和远程JavaScript 633

15.1 Ajax定义 633

15.2 Hello Ajax World 635

15.3 XMLHttpRequest对象 640

15.4 XHR实例化和跨浏览器考虑事项 642

15.4.1 ActiveX XHR低效运行的细节 643

15.4.2 跨浏览器的XHR包装 644

15.5 XHR请求基础 645

15.5.1 同步请求 645

15.5.2 异步请求 647

15.6 通过GET发送数据 648

15.7 通过Post发送数据 650

15.8 使用其他HTTP方法 650

15.9 设置请求头 651

15.10 响应基础 652

15.10.1 探究readyState 652

15.10.2 status和statusText 654

15.10.3 responseText 655

15.10.4 responseXML 656

15.10.5 response和responseTypes 659

15.10.6 JSON 660

15.10.7 脚本响应 666

15.10.8 响应头 666

15.11 控制请求 667

15.12 XHR的身份验证 669

15.13 适当的和新兴的XHR功能 671

15.13.1 管理MIME类型 671

15.13.2 多部分响应 671

15.13.3 onload、onloadstart和onloadend 672

15.13.4 onprogress和部分响应 673

15.13.5 onerror 674

15.14 表单串行化 675

15.15 跨域的Ajax请求 677

15.16 非XHR通信方法 681

15.16.1 图像标签 681

15.16.2 脚本标签 684

15.17 Comet和套接字 685

15.17.1 轮询:快或长 687

15.17.2 长慢加载 690

15.17.3 WebSocket 692

15.18 Ajax的内涵和挑战 695

15.19 小结 696

第16章 浏览器管理 697

16.1 浏览器检测基础 697

16.2 Navigator对象 698

16.3 检测的内容 701

16.3.1 技术检测 702

16.3.2 可视化检测:Screen对象 707

16.3.3 用户特征 716

16.4 网络状态和性能 720

16.4.1 简单的页面加载度量 721

16.4.2 windows.performance.timing 722

16.5 浏览器控制 723

16.6 状态管理 729

16.6.1 JavaScript中的cookie 731

16.6.2 为用户状态管理使用cookie 735

16.6.3 cookie的局限性 738

16.6.4 存储 739

16.6.5 IndexedDB 740

16.6.6 AppCache 743

16.7 脚本执行 745

16.8 小结 750

第17章 媒体管理 751

17.1 图像处理 751

17.2 DHTML、DOMEffects与动画 762

17.3 使用<canvas>在客户端绘制位图图形 767

17.3.1 绘制和样式化直线和形状 771

17.3.2 绘制弧线和曲线 773

17.3.3 缩放、旋转和变换图画 781

17.3.4 在绘图中使用位图 785

17.3.5 <canvas>对文本的支持 787

17.3.6 组合 790

17.3.7 保存状态 792

17.3.8 <canvas>考虑事项 793

17.4 使用SVG在客户端绘制矢量图形 801

17.4.1 包含SVG 801

17.4.2 使用SVG进行绘图 802

17.4.3 SVG交互和动画 802

17.5 HTML5媒体处理 803

17.5.1 <video> 804

17.5.2 <audio> 808

17.5.3 媒体事件 809

17.6 插件 810

17.6.1 为插件嵌入内容 810

17.6.2 MIME类型 811

17.6.3 探测特定插件 814

17.6.4 与插件进行交互 816

17.7 ActiveX 822

17.7.1 包含ActiveX控件 822

17.7.2 与ActiveX控件进行交互 824

17.8 Java applet 826

17.8.1 包含applet 826

17.8.2 Java探测 827

17.8.3 使用JavaScript访问Applet 827

17.8.4 使用applet访问JavaScript 830

17.9 不确定的未来 830

17.10 小结 830

第18章 实践与发展趋势 831

18.1 编写高质量的JavaScript 831

18.1.1 编码风格 831

18.1.2 注释与文档 834

18.1.3 理解错误 837

18.1.4 调试 843

18.1.5 防错性编程 847

18.1.6 利用框架与库 852

18.2 安全性 857

18.3 JavaScript的安全策略 860

18.3.1 同源策略 860

18.3.2 信任的外部脚本 861

18.3.3 跨站点脚本 864

18.3.4 跨站点请求伪造(CSRF) 866

18.4 性能 868

18.4.1 性能度量与工具 868

18.4.2 页面加载性能 870

18.4.3 运行时性能 874

18.5 发展趋势 880

18.5.1 JavaScript无处不在 880

18.5.2 “修复”与隐藏JavaScript 880

18.6 小结 883

附录A JavaScript保留关键字 885