深入理解JavaScript特性
Nicolás Bevacqua
李松峰, 刘冰晶, 高峰 译
出版时间:2019年05月
页数:241
本书从实际开发角度介绍ES6及后续更新版本特性,以循序渐进、通俗易懂的方式讲解各种复杂的技术,比如异步控制流、声明对象及函数的使用等,并从实践角度提供了许多建议,既能帮助广大前端开发者建立一个完整的知识体系,也能助其在工作中如虎添翼,开发出更好的Web应用。
● JavaScript及其标准制定流程的变化
● ES6的根本性变化,包括箭头函数、解构、模板字面量等
● 声明对象原型对应的类语法,以及新的基本数据类型:符号
● 通过Promise、迭代器、生成器以及异步函数控制程序执行流
● 如何创建对象映射和唯一值集合
● 如何使用新的代理与反射特性
● 数字、字符串、Unicode、正则表达式等内置API的改进
  1. 序 
  2. 前言 
  3. 第1章 ECMAScript和JavaScript的未来 
  4. 1.1 JavaScript标准简史 
  5. 1.2 持续迭代的ECMAScript 
  6. 1.3 浏览器支持和辅助工具 
  7. 1.3.1 Babel转译器简介 
  8. 1.3.2 使用ESLint提高代码质量和一致性 
  9. 1.4 ES6特性 
  10. 1.5 JavaScript的未来 
  11. 第2章 ES6基础 
  12. 2.1 对象字面量 
  13. 2.1.1 属性值简写 
  14. 2.1.2 可计算属性名 
  15. 2.1.3 方法定义 
  16. 2.2 箭头函数 
  17. 2.2.1 词法作用域 
  18. 2.2.2 箭头函数的写法 
  19. 2.2.3 优点和用例 
  20. 2.3 解构 
  21. 2.3.1 对象的解构 
  22. 2.3.2 数组的解构 
  23. 2.3.3 函数参数的默认值 
  24. 2.3.4 函数参数的解构 
  25. 2.3.5 解构的用例 
  26. 2.4 剩余参数和扩展运算符 
  27. 2.4.1 剩余参数 
  28. 2.4.2 扩展运算符 
  29. 2.5 模板字面量 
  30. 2.5.1 字符串插值 
  31. 2.5.2 多行模板字面量 
  32. 2.5.3 标签模板 
  33. 2.6 let和const声明 
  34. 2.6.1 块级作用域和let声明 
  35. 2.6.2 暂时性死区 
  36. 2.6.3 const声明 
  37. 2.6.4 const和let的优势 
  38. 第3章 类、符号、对象和装饰器 
  39. 3.1 类 
  40. 3.1.1 使用类 
  41. 3.1.2 类的属性和方法 
  42. 3.1.3 类的继承 
  43. 3.2 符号 
  44. 3.2.1 本地符号 
  45. 3.2.2 符号的实际用法 
  46. 3.2.3 全局符号注册表 
  47. 3.2.4 众所周知的符号 
  48. 3.3 对象的内置改进 
  49. 3.3.1 使用Object.assign扩展对象 
  50. 3.3.2 使用Object.is进行对象比较 
  51. 3.3.3 Object.setPrototypeOf 
  52. 3.4 装饰器 
  53. 3.4.1 初识JavaScript装饰器 
  54. 3.4.2 装饰器叠加及不变性提醒 
  55. 3.4.3 用例:C#中的特性 
  56. 3.4.4 在JavaScript中装饰属性 
  57. 第4章 迭代与流程控制 
  58. 4.1 Promise 
  59. 4.1.1 快速理解Promise 
  60. 4.1.2 Promise的延续与连缀 
  61. 4.1.3 创建Promise 
  62. 4.1.4 Promise的状态 
  63. 4.1.5 Promise#finally提案 
  64. 4.1.6 Promise.all和Promise.race 
  65. 4.2 迭代器协议与可迭代协议 
  66. 4.2.1 迭代的原理 
  67. 4.2.2 无穷序列 
  68. 4.2.3 迭代对象以生成键/值对 
  69. 4.2.4 打造多功能播放列表 
  70. 4.3 生成器函数与生成器对象 
  71. 4.3.1 生成器基础 
  72. 4.3.2 手工迭代生成器 
  73. 4.3.3 将生成器混入可迭代对象 
  74. 4.3.4 使用生成器遍历树 
  75. 4.3.5 传递生成器函数 
  76. 4.3.6 处理异步流 
  77. 4.3.7 在生成器上抛出错误 
  78. 4.3.8 代替生成器返回 
  79. 4.3.9 基于生成器的异步I/O 
  80. 4.4 异步函数 
  81. 4.4.1 各种异步代码 
  82. 4.4.2 使用async/await 
  83. 4.4.3 并发异步流 
  84. 4.4.4 错误处理 
  85. 4.4.5 深入理解异步函数
  86. 4.5 异步迭代 
  87. 4.5.1 异步迭代器 
  88. 4.5.2 异步生成器 
  89. 第5章 巧妙使用ES中的集合 
  90. 5.1 使用ES6 map 
  91. 5.1.1 初识ES6 map 
  92. 5.1.2 散列映射和DOM元素 
  93. 5.2 理解和使用WeakMap 
  94. 5.3 ES6中的Set 
  95. 5.4 ES6 WeakSet 
  96. 第6章 使用代理控制属性访问 
  97. 6.1 了解代理 
  98. 6.1.1 捕获get访问 
  99. 6.1.2 捕获set访问 
  100. 6.1.3 通过代理实现模式验证 
  101. 6.2 可撤销代理 
  102. 6.3 代理捕获器 
  103. 6.3.1 has捕获器 
  104. 6.3.2 deleteProperty捕获器 
  105. 6.3.3 defineProperty捕获器 
  106. 6.3.4 ownKeys捕获器 
  107. 6.4 高级代理捕获器 
  108. 6.4.1 getOwnPropertyDescriptor捕获器 
  109. 6.4.2 apply捕获器 
  110. 6.4.3 construct捕获器 
  111. 6.4.4 getPrototypeOf捕获器 
  112. 6.4.5 setPrototypeOf捕获器 
  113. 6.4.6 preventExtensions捕获器 
  114. 6.4.7 isExtensible捕获器 
  115. 第7章 ES6中内置API的改进 
  116. 7.1 数字 
  117. 7.1.1 二进制和八进制字面量 
  118. 7.1.2 Number.isNaN 
  119. 7.1.3 Number.isFinite 
  120. 7.1.4 Number.parseInt 
  121. 7.1.5 Number.parseFloat 
  122. 7.1.6 Number.isInteger 
  123. 7.1.7 Number.EPSILON 
  124. 7.1.8 Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER 
  125. 7.1.9 Number.isSafeInteger 
  126. 7.2 Math 
  127. 7.2.1 Math.sign 
  128. 7.2.2 Math.trunc 
  129. 7.2.3 Math.cbrt 
  130. 7.2.4 Math.expm1 
  131. 7.2.5 Math.log1p 
  132. 7.2.6 Math.log10 
  133. 7.2.7 Math.log2 
  134. 7.2.8 三角函数
  135. 7.2.9 Math.hypot 
  136. 7.2.10 按位计算助手 
  137. 7.3 字符串和Unicode 
  138. 7.3.1 String#startsWith 
  139. 7.3.2 String#endsWith 
  140. 7.3.3 String#includes 
  141. 7.3.4 String#repeat 
  142. 7.3.5 字符串填充和去空白 
  143. 7.3.6 Unicode 
  144. 7.3.7 String.prototype[Symbol.iterator] 
  145. 7.3.8 有关分割字形段的提案 
  146. 7.3.9 String#codePointAt 
  147. 7.3.10 String.fromCodePoint 
  148. 7.3.11 Unicode-Aware字符串反转 
  149. 7.3.12 String#normalize 
  150. 7.4 正则表达式 
  151. 7.4.1 粘连修饰符/y 
  152. 7.4.2 Unicode修饰符/u 
  153. 7.4.3 具名捕获组 
  154. 7.4.4 Unicode属性转义 
  155. 7.4.5 后行断言 
  156. 7.4.6 新的/s(dotAll)修饰符 
  157. 7.4.7 String#matchAll 
  158. 7.5 Array 
  159. 7.5.1 Array.from 
  160. 7.5.2 Array.of 
  161. 7.5.3 Array#copyWithin 
  162. 7.5.4 Array#fill 
  163. 7.5.5 Array#find和Array#findIndex 
  164. 7.5.6 Array#keys 
  165. 7.5.7 Array#values 
  166. 7.5.8 Array#entries 
  167. 7.5.9 Array.prototype[Symbol.iterator] 
  168. 第8章 JavaScript模块 
  169. 8.1 CommonJS 
  170. 8.2 JavaScript模块 
  171. 8.2.1 严格模式 
  172. 8.2.2 export语句 
  173. 8.2.3 import语句 
  174. 8.2.4 动态import() 
  175. 8.3 ES模块的实践考量 
  176. 第9章 实用建议 
  177. 9.1 变量声明 
  178. 9.2 模板字面量 
  179. 9.3 简写及对象解构 
  180. 9.4 剩余参数和扩展运算符 
  181. 9.5 函数偏好 
  182. 9.6 类和代理 
  183. 9.7 异步代码流 
  184. 9.8 复杂性蠕变、抽象及约定 
书名:深入理解JavaScript特性
作者:Nicolás Bevacqua
译者:李松峰, 刘冰晶, 高峰 译
国内出版社:人民邮电出版社
出版时间:2019年05月
页数:241
书号:978-7-115-51040-2
原版书书名:Practical Modern JavaScript
原版书出版商:O'Reilly Media
Nicolás Bevacqua
 
尼古拉斯·贝瓦夸(Nicolás Bevacqua)是Elastic的高级软件工程师。他著有JavaScript Application Design(Manning,2015),讨论ECMAScript规范,以及Practical Modern JavaScript(O’Reilly,2017),讨论JavaScript流程以及代码质量。除了解决JavaScript编程问题之外,Nicolás在与他人分享自己的知识方面也阿很有经验。你可以在推特上找到他(@nzgb)。
 
 
购买选项
定价:79.00元
书号:978-7-115-51040-2
出版社:人民邮电出版社