JavaScript 高级程序设计

🌙
手机阅读
本文目录结构

JavaScript 高级程序设计

写在前面

本书是JavaScript 超级畅销书的最新版。ECMAScript 5 和HTML5 在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript 增添了很多适应未来发展的新特性。本书这一版除增加5 章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一。全书从JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax 与Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨文档传递消息、客户端存储(包括IndexedDB)等新API,还介绍了离线应用和与维护、性能、部署相关的最佳开发实践。本书附录展望了未来的API 和ECMAScript Harmony 规范。

本书适合有一定编程经验的Web 应用开发人员阅读,也可作为高校及社会实用技术培训相关专业课程的教材。

编辑推荐

1995 年,Brendan Eich 创造了 JavaScript。

2005 年,席卷全球的“Ajax 热”激发了全世界 Web 开发人员学习 JavaScript 的热情。与此同时,本书第 1 版诞生。这一版的中文版狂销 4 万册,被誉为“深度的 JavaScript 经典”。

2005 年到 2009 年,前端开发社区在实践中充分检验了这门语言的各种实现和扩展,JavaScript 从被戏谑的“玩具语言”一跃成为软件业举足轻重的通用编程语言。2009 年 1 月本书第 2 版应运而生,凝聚作者和社区专家多年宝贵经验的这一技术名著再次得到读者认可和褒扬,中文版销量达到 2 万册。

2009 年到 2011 年,ECMAScript5 和 HTML5 在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为这门语言增添了很多适应未来发展的新特性。2012 年初本书第 3 版面世,中文版也紧随其后。第 3 版除增加 5 章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一。

作为 JavaScript 技术经典名著,《JavaScript 高级程序设计(第 3 版)》承继了之前版本全面深入、贴近实战的特点,在详细讲解了 JavaScript 语言的核心之后,条分缕析地为读者展示了现有规范及实现为开发 Web 应用提供的各种支持和特性。

《JavaScript 高级程序设计(第 3 版)》主要内容包括

  • 对 JavaScript 实现各个组成部分的详尽解读;
  • 对 JavaScript 面向对象编程的全方位阐述;
  • 对 DOM、BOM 及浏览器事件模型的透彻剖析;
  • Web 应用基本数据格式 JSON、XML 及其存取;
  • Ajax、Comet 服务器端通信和基于 File API 的拖放式文件上传;
  • HTML5 涵盖的表单、媒体、Canvas(包括 WebGL);
  • 离线应用及客户端存储(包括 IndexedDB);
  • 新兴 API 及 ECMAScript Harmony 展望。

内容简介

作为 JavaScript 技术经典名著,《JavaScript 高级程序设计(第 3 版)》承继了之前版本全面深入、贴近实战的特点,在详细讲解了 JavaScript 语言的核心之后,条分缕析地为读者展示了现有规范及实现为开发 Web 应用提供的各种支持和特性。

《JavaScript 高级程序设计(第 3 版)》主要内容包括:

  • 对 JavaScript 实现各个组成部分的详尽解读;
  • 对 JavaScript 面向对象编程的全方位阐述;
  • 对 DOM、BOM 及浏览器事件模型的透彻剖析;
  • Web 应用基本数据格式 JSON、XML 及其存取;
  • Ajax、Comet 服务器端通信和基于 File API 的拖放式文件上传;
  • ECMAScript 5 定义的新核心语言特性;
  • HTML5 涵盖的表单、媒体、Canvas(包括 WebGL);
  • Selectors、Web? Workers、地理定位及跨文档传递消息等新 API;
  • 离线应用及客户端存储(包括 IndexedDB);
  • 维护、性能、部署相关的开发实践;
  • 新兴 API 及 ECMAScript Harmony 展望。

《JavaScript 高级程序设计(第 3 版)》适合有一定编程经验的 Web 应用开发人员阅读,也可作为高校及社会实用技术培训相关专业课程的教材。

作者简介

Nicholas C. Zakas(尼古拉斯·泽卡斯),Web 技术专家,现为雅虎公司界面呈现架构师,负责 My Yahoo! 和雅虎首页等大访问量站点的设计。尼古拉斯拥有丰富的 Web 开发和界面设计经验,曾经参与许多大公司的 Web 解决方案开发。他还是 High Performance JavaScript 一书的作者,并与他人合作撰写了 Professional Ajax 和 Even Faster Web Sites。尼古拉斯拥有梅里马克学院计算机科学学士学位和埃迪柯特学院的 MBA 学位。他的 Twitter 别名是 @slicknet。

目  录

第 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 DocumentFragment 类型  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 querySelector() 方法  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

AXIHE / 精选教程

浏览全部教程

HTML

CSS

JS

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

如果你加我的私人微信,麻烦写上您的 称呼,所在地区,职业,方便我备注,谢谢


本站的微信公众号

阿西河前端教程

Anbang

安邦的私人微信

微信号: yaolushan

Anbang

Bilibili(B站)

朱安邦

Anbang