内容简介
《ECMAscript6入门》全面介绍了ECMAscript6新引入的语法特性,覆盖了ECMAscript6与ECMAscript5的所有不同之处,对涉及的语法知识给予了详细介绍,并给出了大量简洁易懂的示例代码。
《ECMAscript6入门》为中级难度,适合已有一定Javascript语言基础的读者,用来了解这门语言的发展;也可当作参考手册,查寻新增的语法点。
目录
第一章ECMAscript6简介............................ 1
ECMAscript和Javascript的关系 3
ECMAscript的历史 4
部署进度 5Traceur编译器 7
ECMAscript7 11
第二章let和const命令..............................13
let命令 15
块级作用域 17
const命令 19
第三章 变量的解构赋值..............................21
数组的解构赋值 23
对象的解构赋值 25
用途 27
第四章 字符串的扩展 ................................31
codePointAt方法 33
String.fromCodePoint方法 34
字符的Unicode表示法 35
正则表达式的u修饰符 36
contains(),startsWith(),endsWith() 36
repeat() 37
正则表达式的y修饰符 38
模板字符串 39
第五章 数值的扩展 ..................................41
二进制和八进制数值表示法 43
Number.isFinite(),Number.isNaN() 43
Number.parseInt(),Number.parseFloat() 44
Number.isInteger()和安全整数 44
Math对象的扩展 45
Math.trunc() 45
数学方法 45
第六章 数组的扩展 ..................................47
Array.from() 49
Array.of() 50
数组实例的fnd()和fndIndex() 50
数组实例的fll() 51
数组实例的entries(),keys()和values() 52
数组推导 53
Array.observe(),Array.unobserve() 55
第七章 对象的扩展 ..................................57
Object.is() 59
Object.assign() 59
__proto__属性,Object.setPrototypeOf(),
Object.getPrototypeOf() 60
__proto__属性 60
Object.setPrototypeOf() 61
Object.getPrototypeOf() 61
增强的对象写法 62
属性名表达式 63Symbol 64
Proxy 66Object.observe(),Object.unobserve() 68
第八章 函数的扩展 ..................................71
函数参数的默认值 73rest参数 74
扩展运算符 75箭头函数 77
第九章 Set和Map数据结构..........................81Set 83Map 86
基本用法 86
属性和方法 88
遍历 89WeakMap 91
第十章Iterator和for...of循环.......................93
Iterator(遍历器) 95for...of循环 97
第十一章Generator函数..............................103
含义 105
next方法的参数 108
异步操作的应用 109
for...of循环 112
yield*语句 112
第十二章Promise对象 ...............................115
基本用法 117
链式操作 120
catch方法:捕捉错误 121
Promise.all方法 121
Promise.resolve方法 122
async函数 123
第13章 Class和Module.............................125
Class 127
Module的基本用法 129
export和import 129
模块的整体加载 130
exportdefault语句 131
模块的继承 132
参考链接.............................................135
索引.................................................143
摘要与插图
2012年年底,我开始动手做一个开源项目《Javascript标准参考教程》(https://github.com/ruanyf/jstutorial)。原来的设想是将自己的学习笔记整理成一本书,哪里料到,这个项目不断膨胀,变成了关于ECMAscript5及其外围API的全面解读和参考手册,写了一年多还没写完。那个项目的一章就是ECMAscript6的语法简介。那一章也是越写越长,我不得不决定,把它独立出来,作为一个新项目,也就是您现在看到的这本书。
Javascript已经是互联网开发的第一大语言,而且正在变成一种全领域的语言。程序员JefAtwood甚至提出了一条“Atwood定律”:“所有可以用Javascript编写的程序,都会出现Javascript的版本。”(AnyapplicationthatcanbewritteninJavascriptwilleventuallybewritteninJavascript.)
ECMAscript正是Javascript的标准,这就决定了该标准的重要性。而ECMAscript6是ECMAscript历的一次版本升级,在语言的各个方面都有极大的变化,即使是熟练的Javascript程序员,也需要重新学习。由于ES6的设计目标是企业级开发和大型项目,所以可以预料,除了互联网开发者,将来还会有大量应用程序开发者(甚至操作系统开发者)成为ES6的学习者。
我写作这本书的目标,就是想为上面这些学习者,提供一本篇幅较短、简明易懂、符合中文表达习惯的ES6教程。它由浅入深、循序渐进,既有重要概念的讲解,又有API接口的罗列,便于日后当作参考手册查阅,还提供大量示例代码,让读者不仅一看就懂,还能举一反三,直接复制用于实际项目之中。
需要声明的是,为了突出重点,本书只涉及ES6与ES5的不同之处,不对Javascript已有的语法做全面讲解,毕竟市场上这样的教程已有很多了。因此,本书不是Javascript入门教材,不适合初学者。阅读本书之前,需要对Javascript的基本语法有所了解。
我本人也是一个ES6的学习者,不敢说自己有多高的水平,只是较早地接触了这个主题,持续地读了许多资料,追踪标准的进展,做了详细的笔记而已。虽然我尽了努力,并且原稿在GitHub上公开后,已经得到了大量的勘误,但是本书的不如人意之处恐怕还是有不少。
欢迎大家访问本书的项目主页(https://github.com/ruanyf/es6tutorial),提出意见,以及提交pullrequest。这些都会包括在本书的下一个版本中
阮一峰
2014年6月4日,写于上海