《图灵程序设计丛书 JavaScript高级程序设计 原书第3版》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)泽卡斯著;李松峰,曹力译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2012
  • ISBN:9787115275790
  • 页数:730 页
图书介绍:本书在前两版基础上进行了大幅更新和修订,融入了JavaScript的很多适应未来发展的新特性,展望了未来的API和ECMAScript Harmony规范。

第1章 JavaScript简介 1

1.1 JavaScript简史 1

1.2 JavaScript实现 2

1.2.1 ECMAScript 3

1.2.2文档对象模型(DOM) 5

1.2.3浏览器对象模型(BOM) 8

1.3 JavaScript版本 8

1.4小结 9

第2章 在HTML中使用JavaScript 10

2.1 <script>元素 10

2.1.1标签的位置 12

2.1.2延迟脚本 13

2.1.3异步脚本 13

2.1.4在XHTML中的用法 14

2.1.5不推荐使用的语法 16

2.2嵌入代码与外部文件 16

2.3文档模式 16

2.4 <noscript>元素 18

2.5小结 18

第3章 基本概念 19

3.1语法 19

3.1.1区分大小写 19

3.1.2标识符 19

3.1.3注释 20

3.1.4严格模式 20

3.1.5语句 20

3.2关键字和保留字 21

3.3变量 22

3.4数据类型 23

3.4.1 typeof操作符 23

3.4.2 Undefined类型 24

3.4.3 Null类型 25

3.4.4 Boolean类型 26

3.4.5 Number类型 27

3.4.6 String类型 32

3.4.7 Object类型 35

3.5操作符 36

3.5.1一元操作符 36

3.5.2位操作符 39

3.5.3布尔操作符 44

3.5.4乘性操作符 47

3.5.5加性操作符 48

3.5.6关系操作符 50

3.5.7相等操作符 51

3.5.8条件操作符 53

3.5.9赋值操作符 53

3.5.10逗号操作符 54

3.6语句 54

3.6.1 if语句 54

3.6.2 do-while语句 55

3.6.3 while语句 55

3.6.4 for语句 56

3.6.5 for-in语句 57

3.6.6 label语句 58

3.6.7 break和continue语句 58

3.6.8 with语句 60

3.6.9 switch语句 60

3.7函数 62

3.7.1理解参数 64

3.7.2没有重载 66

3.8小结 67

第4章 变量、作用域和内存问题 68

4.1基本类型和引用类型的值 68

4.1.1动态的属性 68

4.1.2复制变量值 69

4.1.3传递参数 70

4.1.4检测类型 72

4.2执行环境及作用域 73

4.2.1延长作用域链 75

4.2.2没有块级作用域 76

4.3垃圾收集 78

4.3.1标记清除 78

4.3.2引用计数 79

4.3.3性能问题 80

4.3.4管理内存 81

4.4小结 81

第5章 引用类型 83

5.1 Object类型 83

5.2 Array类型 86

5.2.1检测数组 88

5.2.2转换方法 89

5.2.3栈方法 90

5.2.4队列方法 91

5.2.5重排序方法 92

5.2.6操作方法 94

5.2.7位置方法 95

5.2.8迭代方法 96

5.2.9缩小方法 97

5.3 Date类型 98

5.3.1继承的方法 100

5.3.2日期格式化方法 101

5.3.3日期/时间组件方法 102

5.4 RegExp类型 103

5.4.1 RegExp实例属性 105

5.4.2 RegExp实例方法 106

5.4.3 RegExp构造函数属性 107

5.4.4模式的局限性 109

5.5 Function类型 110

5.5.1没有重载(深入理解) 111

5.5.2函数声明与函数表达式 111

5.5.3作为值的函数 112

5.5.4函数内部属性 113

5.5.5函数属性和方法 116

5.6基本包装类型 118

5.6.1 Boolean类型 120

5.6.2 Number类型 120

5.6.3 String类型 122

5.7单体内置对象 130

5.7.1 Global对象 131

5.7.2 Math对象 134

5.8小结 137

第6章 面向对象的程序设计 138

6.1理解对象 138

6.1.1属性类型 139

6.1.2定义多个属性 142

6.1.3读取属性的特性 143

6.2创建对象 144

6.2.1工厂模式 144

6.2.2构造函数模式 144

6.2.3原型模式 147

6.2.4组合使用构造函数模式和原型模式 159

6.2.5动态原型模式 159

6.2.6寄生构造函数模式 160

6.2.7稳妥构造函数模式 161

6.3继承 162

6.3.1原型链 162

6.3.2借用构造函数 167

6.3.3组合继承 168

6.3.4原型式继承 169

6.3.5寄生式继承 171

6.3.6寄生组合式继承 172

6.4小结 174

第7章 函数表达式 175

7.1递归 177

7.2闭包 178

7.2.1闭包与变量 181

7.2.2关于this对象 182

7.2.3内存泄漏 183

7.3模仿块级作用域 184

7.4私有变量 186

7.4.1静态私有变量 188

7.4.2模块模式 189

7.4.3增强的模块模式 191

7.5小结 192

第8章 BOM 193

8.1 window对象 193

8.1.1全局作用域 193

8.1.2窗口关系及框架 194

8.1.3窗口位置 197

8.1.4窗口大小 198

8.1.5导航和打开窗口 199

8.1.6间歇调用和超时调用 203

8.1.7系统对话框 205

8.2 location对象 207

8.2.1查询字符串参数 207

8.2.2位置操作 208

8.3 navigator对象 210

8.3.1检测插件 211

8.3.2注册处理程序 213

8.4 screen对象 214

8.5 history对象 215

8.6小结 216

第9章 客户端检测 217

9.1能力检测 217

9.1.1更可靠的能力检测 218

9.1.2能力检测,不是浏览器检测 220

9.2怪癖检测 220

9.3用户代理检测 221

9.3.1用户代理字符串的历史 222

9.3.2用户代理字符串检测技术 228

9.3.3完整的代码 242

9.3.4使用方法 245

9.4小结 246

第10章 DOM 247

10.1节点层次 247

10.1.1 Node类型 248

10.1.2 Document类型 253

10.1.3 Element类型 261

10.1.4 Text类型 270

10.1.5 Comment类型 273

10.1.6 CDATASection类型 274

10.1.7 DocumentType类型 274

10.1.8 Document Fragment类型 275

10.1.9 Attr类型 276

10.2 DOM操作技术 277

10.2.1动态脚本 277

10.2.2动态样式 279

10.2.3操作表格 281

10.2.4使用NodeList 283

10.3小结 284

第11章 DOM扩展 286

11.1选择符API 286

11.1.1 querySel ector()方法 286

11.1.2 querySelectorAll()方法 287

11.1.3 matchesSelector()方法 288

11.2元素遍历 288

11.3 HTML5 289

11.3.1与类相关的扩充 289

11.3.2焦点管理 291

11.3.3 HTMLDocument的变化 292

11.3.4字符集属性 293

11.3.5自定义数据属性 293

11.3.6插入标记 294

11.3.7 scrollIntoView()方法 298

11.4专有扩展 298

11.4.1文档模式 298

11.4.2 children属性 299

11.4.3 contains()方法 300

11.4.4插入文本 301

11.4.5滚动 303

11.5小结 304

第12章 DOM2和DOM3 305

12.1 DOM变化 305

12.1.1针对XML命名空间的变化 306

12.1.2其他方面的变化 309

12.2样式 312

12.2.1访问元素的样式 313

12.2.2操作样式表 317

12.2.3元素大小 320

12.3遍历 326

12.3.1 NodeIterator 328

12.3.2 TreeWalker 330

12.4范围 332

12.4.1 DOM中的范围 332

12.4.2 IE8及更早版本中的范围 340

12.5小结 343

第13章 事件 345

13.1事件流 345

13.1.1事件冒泡 346

13.1.2事件捕获 346

13.1.3 DOM事件流 347

13.2事件处理程序 348

13.2.1 HTML事件处理程序 348

13.2.2 DOM0级事件处理程序 350

13.2.3 DOM2级事件处理程序 351

13.2.4 IE事件处理程序 352

13.2.5跨浏览器的事件处理程序 353

13.3事件对象 355

13.3.1 DOM中的事件对象 355

13.3.2 IE中的事件对象 358

13.3.3跨浏览器的事件对象 360

13.4事件类型 362

13.4.1 UI事件 362

13.4.2焦点事件 367

13.4.3鼠标与滚轮事件 368

13.4.4键盘与文本事件 379

13.4.5复合事件 384

13.4.6变动事件 385

13.4.7 HTML5事件 388

13.4.8设备事件 395

13.4.9触摸与手势事件 399

13.5内存和性能 402

13.5.1事件委托 402

13.5.2移除事件处理程序 404

13.6模拟事件 405

13.6.1 DOM中的事件模拟 405

13.6.2 IE中的事件模拟 410

13.7小结 411

第14章 表单脚本 412

14.1表单的基础知识 412

14.1.1提交表单 413

14.1.2重置表单 414

14.1.3表单字段 414

14.2文本框脚本 419

14.2.1选择文本 420

14.2.2过滤输入 423

14.2.3自动切换焦点 426

14.2.4 HTML5约束验证API 427

14.3选择框脚本 431

14.3.1选择选项 432

14.3.2添加选项 434

14.3.3移除选项 435

14.3.4移动和重排选项 435

14.4表单序列化 436

14.5富文本编辑 438

14.5.1使用contenteditable属性 438

14.5.2操作富文本 439

14.5.3富文本选区 441

14.5.4表单与富文本 443

14.6小结 443

第15章 使用Canvas绘图 445

15.1基本用法 445

15.2 2D上下文 446

15.2.1填充和描边 446

15.2.2绘制矩形 447

15.2.3绘制路径 449

15.2.4绘制文本 451

15.2.5变换 453

15.2.6绘制图像 456

15.2.7阴影 457

15.2.8渐变 458

15.2.9模式 460

15.2.10使用图像数据 460

15.2.11合成 462

15.3 WebGL 463

15.3.1类型化数组 463

15.3.2 WebGL上下文 468

15.3.3支持 478

15.4小结 478

第16章 HTML5脚本编程 480

16.1跨文档消息传递 480

16.2原生拖放 481

16.2.1拖放事件 482

16.2.2自定义放置目标 482

16.2.3 dataTransfer对象 483

16.2.4 dropEffect与effectAllowed 484

16.2.5可拖动 485

16.2.6其他成员 485

16.3媒体元素 486

16.3.1属性 487

16.3.2事件 488

16.3.3自定义媒体播放器 488

16.3.4检测编解码器的支持情况 489

16.3.5 Audio类型 490

16.4历史状态管理 491

16.5小结 492

第17章 错误处理与调试 493

17.1浏览器报告的错误 493

17.1.1 IE 493

17.1.2 Firefox 494

17.1.3 Safari 496

17.1.4 Opera 497

17.1.5 Chrome 498

17.2错误处理 499

17.2.1 try-catch语句 500

17.2.2抛出错误 503

17.2.3错误(error)事件 505

17.2.4处理错误的策略 506

17.2.5常见的错误类型 507

17.2.6区分致命错误和非致命错误 510

17.2.7把错误记录到服务器 511

17.3调试技术 512

17.3.1将消息记录到控制台 512

17.3.2将消息记录到当前页面 515

17.3.3抛出错误 515

17.4常见的IE错误 516

17.4.1操作终止 516

17.4.2无效字符 518

17.4.3未找到成员 518

17.4.4未知运行时错误 519

17.4.5语法错误 519

17.4.6系统无法找到指定资源 519

17.5小结 520

第18章 JavaScript与XML 521

18.1浏览器对XML DOM的支持 521

18.1.1 DOM2级核心 521

18.1.2 DOMParser类型 522

18.1.3 XMLSerializer类型 523

18.1.4 IE8及之前版本中的XML 523

18.1.5跨浏览器处理XML 527

18.2浏览器对XPath的支持 529

18.2.1 DOM3级XPath 529

18.2.2 IE中的XPath 534

18.2.3跨浏览器使用XPath 535

18.3浏览器对XSLT的支持 537

18.3.1 IE中的XSLT 537

18.3.2 XSLTProcessor类型 541

18.3.3跨浏览器使用XSLT 543

18.4小结 544

第19章 E4X 546

19.1 E4X的类型 546

19.1.1 XML类型 546

19.1.2 XMLList类型 547

19.1.3 Namespace类型 548

19.1.4 QName类型 549

19.2一般用法 550

19.2.1访问特性 551

19.2.2其他节点类型 552

19.2.3查询 553

19.2.4构建和操作XML 555

19.2.5解析和序列化 557

19.2.6命名空间 558

19.3其他变化 559

19.4全面启用E4X 560

19.5小结 561

第20章 JSON 562

20.1语法 562

20.1.1简单值 562

20.1.2对象 563

20.1.3数组 564

20.2解析与序列化 565

20.2.1 JSON对象 565

20.2.2序列化选项 566

20.2.3解析选项 569

20.3小结 570

第21章 Ajax与Comet 571

21.1 XMLHttpRequest对象 571

21.1.1 XHR的用法 573

21.1.2 HTTP头部信息 575

21.1.3 GET请求 576

21.1.4 POST请求 577

21.2 XMLHttpRequest 2级 578

21.2.1 FormData 578

21.2.2超时设定 579

21.2.3 overrideMimeType()方法 580

21.3进度事件 580

21.3.1 load事件 580

21.3.2 progress事件 581

21.4跨源资源共享 582

21.4.1 IE对CORS的实现 582

21.4.2其他浏览器对CORS的实现 584

21.4.3 Preflighted Reqeusts 584

21.4.4带凭据的请求 585

21.4.5跨浏览器的CORS 585

21.5其他跨域技术 586

21.5.1图像Ping 586

21.5.2 JSONP 587

21.5.3 Comet 588

21.5.4服务器发送事件 590

21.5.5 Web Sockets 591

21.5.6 SSE与Web Sockets 593

21.6安全 593

21.7小结 594

第22章 高级技巧 596

22.1高级函数 596

22.1.1安全的类型检测 596

22.1.2作用域安全的构造函数 597

22.1.3惰性载入函数 600

22.1.4函数绑定 602

22.1.5函数柯里化 604

22.2防篡改对象 606

22.2.1不可扩展对象 606

22.2.2密封的对象 607

22.2.3冻结的对象 608

22.3高级定时器 609

22.3.1重复的定时器 610

22.3.2 Yielding Processes 612

22.3.3函数节流 614

22.4自定义事件 616

22.5拖放 618

22.5.1修缮拖动功能 620

22.5.2添加自定义事件 622

22.6小结 624

第23章 离线应用与客户端存储 626

23.1离线检测 626

23.2应用缓存 627

23.3数据存储 628

23.3.1 Cookie 629

23.3.2 IE用户数据 637

23.3.3 Web存储机制 638

23.3.4 IndexedDB 643

23.4小结 654

第24章 最佳实践 656

24.1可维护性 656

24.1.1什么是可维护的代码 656

24.1.2代码约定 657

24.1.3松散耦合 659

24.1.4编程实践 662

24.2性能 666

24.2.1注意作用域 666

24.2.2选择正确方法 667

24.2.3最小化语句数 672

24.2.4优化DOM交互 673

24.3部署 676

24.3.1构建过程 676

24.3.2验证 677

24.3.3压缩 679

24.4小结 681

第25章 新兴的API 682

25.1 requestAnimationFrame() 682

25.1.1早期动画循环 682

25.1.2循环间隔的问题 683

25.1.3 mozRequestAnimation-Frame 683

25.1.4 webkitRequestAnima-tionFrame与msRequest-AnimationFrame 685

25.2 Page Visibility API 686

25.3 Geolocation API 687

25.4 File API 689

25.4.1 FileReader类型 690

25.4.2读取部分内容 692

25.4.3对象URL 693

25.4.4读取拖放的文件 694

25.4.5使用XHR上传文件 695

25.5 Web计时 696

25.6 Web Workers 697

25.6.1使用Worker 697

25.6.2 Worker全局作用域 698

25.6.3包含其他脚本 699

25.6.4 Web Workers的未来 700

25.7小结 700

附录A ECMAScript Harmony 701

附录B 严格模式 717

附录C JavaScript库 723

附录D JavaScript工具 727