ES6标准入门(第2版)

ES6标准入门(第2版)

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
8.2225 评价豆瓣读书

作品简介

ES6(又名ES2105)是JavaScript语言的新标准,2015年6月正式发布后,得到了迅速推广,是目前业界超级活跃的计算机语言。《ES6标准入门(第2版)》是国内仅有的一本ES6教程,在前版基础上增补了大量内容——对标准进行了彻底的解读,所有新增的语法知识(包括即将发布的ES7)都给予了详细介绍,并且紧扣业界开发实践,给出了大量简洁易懂、可以即学即用的示例代码。

《ES6标准入门(第2版)》为中级难度,适合对JavaScript语言或ES5已经有所了解的读者,用来提高水平,了解这门语言的最新发展;也可当作参考手册,查寻ES6/ES7新增的语法点。

阮一峰:著名技术博客作者,JavaScript专家。专注于网站开发技术,超过十年。畅销书《黑客与画家》《软件随想录》的译者。

作品目录

  1. 推荐序1
  2. 推荐序2
  3. 推荐序3
  4. 前言
  5. 第1章 ECMAScript 6简介
  6. 1.1 ECMAScript和JavaScript的关系
  7. 1.2 ECMAScript的历史
  8. 1.3 部署进度
  9. 1.4 Babel转码器
  10. 命令行环境
  11. 浏览器环境
  12. Node.js环境
  13. 在线转换
  14. 1.5 Traceur转码器
  15. 直接插入网页
  16. 在线转换
  17. 命令行转换
  18. Node.js环境的用法
  19. 1.6 ECMAScript 7
  20. 第2章 let和const命令
  21. 2.1 let命令
  22. 基本用法
  23. 不存在变量提升
  24. 暂时性死区
  25. 不允许重复声明
  26. 2.2 块级作用域
  27. 为什么需要块级作用域
  28. ES6的块级作用域
  29. 2.3 const命令
  30. 2.4 跨模块常量
  31. 2.5 全局对象的属性
  32. 第3章 变量的解构赋值
  33. 3.1 数组的解构赋值
  34. 基本用法
  35. 默认值
  36. 3.2 对象的解构赋值
  37. 3.3 字符串的解构赋值
  38. 3.4 数值和布尔值的解构赋值
  39. 3.5 函数参数的解构赋值
  40. 3.6 圆括号问题
  41. 不能使用圆括号的情况
  42. 可以使用圆括号的情况
  43. 3.7 用途
  44. 第4章 字符串的扩展
  45. 4.1 字符的Unicode表示法
  46. 4.2 codePointAt()
  47. 4.3 String.fromCodePoint()
  48. 4.4 字符串的遍历器接口
  49. 4.5 at()
  50. 4.6 normalize()
  51. 4.7 includes(),startsWith(),endsWith()
  52. 4.8 repeat()
  53. 4.9 padStart(),padEnd()
  54. 4.10 模板字符串
  55. 4.11 实例:模板编译
  56. 4.12 标签模板
  57. 4.13 String.raw()
  58. 第5章 正则的扩展
  59. 5.1 RegExp构造函数
  60. 5.2 字符串的正则方法
  61. 5.3 u修饰符
  62. 5.4 y修饰符
  63. 5.5 sticky属性
  64. 5.6 flags属性
  65. 5.7 RegExp.escape()
  66. 第6章 数值的扩展
  67. 6.1 二进制和八进制数值表示法
  68. 6.2 Number.isFinite(),Number.isNaN()
  69. 6.3 Number.parseInt(),Number.parseFloat()
  70. 6.4 Number.isInteger()
  71. 6.5 Number.EPSILON
  72. 6.6 安全整数和Number.isSafeInteger()
  73. 6.7 Math对象的扩展
  74. Math.trunc()
  75. Math.sign()
  76. Math.cbrt()
  77. Math.clz32()
  78. Math.imul()
  79. Math.fround()
  80. Math.hypot()
  81. 对数方法
  82. 三角函数方法
  83. 6.8 指数运算符
  84. 第7章 数组的扩展
  85. 7.1 Array.from()
  86. 7.2 Array.of()
  87. 7.3 数组实例的copyWithin()
  88. 7.4 数组实例的find()和findIndex()
  89. 7.5 数组实例的fill()
  90. 7.6 数组实例的entries()、keys()和values()
  91. 7.7 数组实例的includes()
  92. 7.8 数组的空位
  93. 7.9 数组推导
  94. 第8章 函数的扩展
  95. 8.1 函数参数的默认值
  96. 基本用法
  97. 与解构赋值默认值结合使用
  98. 参数默认值的位置
  99. 函数的length属性
  100. 作用域
  101. 应用
  102. 8.2 rest参数
  103. 8.3 扩展运算符
  104. 含义
  105. 替代数组的apply方法
  106. 扩展运算符的应用
  107. 8.4 name属性
  108. 8.5 箭头函数
  109. 基本用法
  110. 使用注意点
  111. 嵌套的箭头函数
  112. 8.6 函数绑定
  113. 8.7 尾调用优化
  114. 什么是尾调用
  115. 尾调用优化
  116. 尾递归
  117. 递归函数的改写
  118. 8.8 函数参数的尾逗号
  119. 第9章 对象的扩展
  120. 9.1 属性的简洁表示法
  121. 9.2 属性名表达式
  122. 9.3 方法的name属性
  123. 9.4 Object.is()
  124. 9.5 Object.assign()
  125. 9.6 属性的可枚举性
  126. 9.7 属性的遍历
  127. 9.8 __proto__属性,Object.setPrototypeOf(),Object.getPrototypeOf()
  128. 9.9 对象的扩展运算符
  129. 第10章 Symbol
  130. 10.1 概述
  131. 10.2 作为属性名的Symbol
  132. 10.3 实例:消除魔术字符串
  133. 10.4 属性名的遍历
  134. 10.5 Symbol.for(),Symbol.keyFor()
  135. 10.6 内置的Symbol值
  136. Symbol.hasInstance
  137. Symbol.isConcatSpreadable
  138. Symbol.species
  139. Symbol.match
  140. Symbol.replace
  141. Symbol.search
  142. Symbol.split
  143. Symbol.iterator
  144. Symbol.toPrimitive
  145. Symbol.toStringTag
  146. Symbol.unscopables
  147. 第11章 Proxy和Reflect
  148. 11.1 Proxy概述
  149. 11.2 Proxy实例的方法
  150. get()
  151. set()
  152. apply()
  153. has()
  154. construct()
  155. deleteProperty()
  156. defineProperty()
  157. enumerate()
  158. getOwnPropertyDescriptor()
  159. getPrototypeOf()
  160. isExtensible()
  161. ownKeys()
  162. preventExtensions()
  163. setPrototypeOf()
  164. 11.3 Proxy.revocable()
  165. 11.4 Reflect概述
  166. 11.5 Reflect对象的方法
  167. 第12章 二进制数组
  168. 12.1 ArrayBuffer对象
  169. ArrayBuffer.prototype.byteLength
  170. ArrayBuffer.prototype.slice()
  171. ArrayBuffer.isView()
  172. 12.2 TypedArray视图
  173. 概述
  174. 构造函数
  175. 数组方法
  176. 字节序
  177. BYTES_PER_ELEMENT属性
  178. ArrayBuffer与字符串的互相转换
  179. 溢出
  180. TypedArray.prototype.buffer
  181. TypedArray.prototype.byteLength,TypedArray.prototype.byteOffset
  182. TypedArray.prototype.length
  183. TypedArray.prototype.set()
  184. TypedArray.prototype.subarray()
  185. TypedArray.prototype.slice()
  186. TypedArray.of()
  187. TypedArray.from()
  188. 12.3 复合视图
  189. 12.4 DataView视图
  190. 12.5 二进制数组的应用
  191. AJAX
  192. Canvas
  193. WebSocket
  194. Fetch API
  195. File API
  196. 第13章 Set和Map数据结构
  197. 13.1 Set
  198. 基本用法
  199. Set实例的属性和方法
  200. 遍历操作
  201. 13.2 WeakSet
  202. 13.3 Map
  203. Map结构的目的和基本用法
  204. 实例的属性和操作方法
  205. 遍历方法
  206. 与其他数据结构的互相转换
  207. 13.4 WeakMap
  208. 第14章 Iterator和for...of循环
  209. 14.1 Iterator的概念
  210. 14.2 数据结构的默认Iterator接口
  211. 14.3 调用Iterator接口的场合
  212. 14.4 字符串的Iterator接口
  213. 14.5 Iterator接口与Generator函数
  214. 14.6 遍历器对象的return()、throw()
  215. 14.7 for...of循环
  216. 数组
  217. Set和Map结构
  218. 计算生成的数据结构
  219. 类似数组的对象
  220. 对象
  221. 与其他遍历语法的比较
  222. 第15章 Generator函数
  223. 15.1 简介
  224. 基本概念
  225. yield语句
  226. 与Iterator接口的关系
  227. 15.2 next方法的参数
  228. 15.3 for...of循环
  229. 15.4 Generator.prototype.throw()
  230. 15.5 Generator.prototype.return()
  231. 15.6 yield*语句
  232. 15.7 作为对象属性的Generator函数
  233. 15.8 Generator函数的this
  234. 15.9 Generator函数推导
  235. 15.10 含义
  236. Generator与状态机
  237. Generator与协程
  238. 15.11 应用
  239. 第16章 Promise对象
  240. 16.1 Promise的含义
  241. 16.2 基本用法
  242. 16.3 Promise.prototype.then()
  243. 16.4 Promise.prototype.catch()
  244. 16.5 Promise.all()
  245. 16.6 Promise.race()
  246. 16.7 Promise.resolve()
  247. 16.8 Promise.reject()
  248. 16.9 两个有用的附加方法
  249. done()
  250. finally()
  251. 16.10 应用
  252. 加载图片
  253. Generator函数与Promise的结合
  254. 16.11 async函数
  255. 第17章 异步操作和async函数
  256. 17.1 基本概念
  257. 异步
  258. 回调函数
  259. Promise
  260. 17.2 Generator函数
  261. 协程
  262. Generator函数的概念
  263. Generator函数的数据交换和错误处理
  264. 异步任务的封装
  265. 17.3 Thunk函数
  266. 参数的求值策略
  267. Thunk函数的含义
  268. JavaScript语言的Thunk函数
  269. Thunkify模块
  270. Generator函数的流程管理
  271. Thunk函数的自动流程管理
  272. 17.4 co模块
  273. 基本用法
  274. co模块的原理
  275. 基于Promise对象的自动执行
  276. co模块的源码
  277. 处理并发的异步操作
  278. 17.5 async函数
  279. 含义
  280. async函数的实现
  281. async函数的用法
  282. 注意点
  283. 与Promise、Generator的比较
  284. 第18章 Class
  285. 18.1 Class基本语法
  286. 概述
  287. constructor方法
  288. 实例对象
  289. name属性
  290. Class表达式
  291. 不存在变量提升
  292. 严格模式
  293. 18.2 Class的继承
  294. 基本用法
  295. 类的prototype属性和__proto__属性
  296. extends的继承目标
  297. Object.getPrototypeOf()
  298. super关键字
  299. 实例的__proto__属性
  300. 18.3 原生构造函数的继承
  301. 18.4 Class的取值函数(getter)和存值函数(setter)
  302. 18.5 Class的Generator方法
  303. 18.6 Class的静态方法
  304. 18.7 Class的静态属性
  305. 18.8 new.target属性
  306. 18.9 Mixin模式的实现
  307. 第19章 修饰器
  308. 19.1 类的修饰
  309. 19.2 方法的修饰
  310. 19.3 为什么修饰器不能用于函数
  311. 19.4 core-decorators.js
  312. @autobind
  313. @readonly
  314. @override
  315. @deprecate(别名@deprecated)
  316. @suppressWarnings
  317. 19.5 使用修饰器实现自动发布事件
  318. 19.6 Mixin
  319. 19.7 Trait
  320. 19.8 Babel转码器的支持
  321. 第20章 Module
  322. 20.1 严格模式
  323. 20.2 export命令
  324. 20.3 import命令
  325. 20.4 模块的整体加载
  326. 20.5 module命令
  327. 20.6 export default命令
  328. 20.7 模块的继承
  329. 20.8 ES6模块加载的实质
  330. 20.9 循环加载
  331. CommonJS模块的加载原理
  332. CommonJS模块的循环加载
  333. ES6模块的循环加载
  334. 20.10 ES6模块的转码
  335. ES6 module transpiler
  336. SystemJS
  337. 第21章 编程风格
  338. 21.1 块级作用域
  339. let取代var
  340. 全局常量和线程安全
  341. 严格模式
  342. 21.2 字符串
  343. 21.3 解构赋值
  344. 21.4 对象
  345. 21.5 数组
  346. 21.6 函数
  347. 21.7 Map结构
  348. 21.8 Class
  349. 21.9 模块
  350. 21.10 ESLint的使用
  351. 第22章 读懂ECMAScript规格
  352. 22.1 概述
  353. 22.2 相等运算符
  354. 22.3 数组的空位
  355. 22.4 数组的map方法
  356. 第23章 参考链接
  357. 23.1 官方文件
  358. 23.2 综合介绍
  359. 23.3 let和const
  360. 23.4 解构赋值
  361. 23.5 字符串
  362. 23.6 正则
  363. 23.7 数值
  364. 23.8 数组
  365. 23.9 函数
  366. 23.10 对象
  367. 23.11 Proxy和Reectt
  368. 23.12 Symbol
  369. 23.13 二进制数组
  370. 23.14 Set和Map
  371. 23.15 Iterator
  372. 23.16 Generator
  373. 23.17 Promise对象
  374. 23.18 Class
  375. 23.19 Decorator
  376. 23.20 Module
  377. 23.21 工具
载入中

大家都喜欢