2017年6月,TC39 委员会正式发布了《ES2017 标准》。
相比两年前,JavaScript 语法有了很大的升级,主要是引入了 async 函数和 decorator。这让我觉得,《ES6 标准入门》必须要出新版,否则就跟不上形势了。
电子工业出版社的张春雨编辑很支持我的想法,最快时间投入出版社的资源;孙奇俏编辑连续几周都忙于校对排版。7月初我交稿,8月底送印刷厂,9月中旬《ES6 标准入门(第3版)》就全面上市了。
新版本的背后是,四年不间断的修改增订,1000多次提交,100多位网友的补丁。我对它的质量很有信心,这本书已经有了8000颗 star,官网每天有上万次的页面请求。
第三版比第二版厚了许多,547页 vs. 317页。
价格当然也贵了不少。不过,这是一本开源教材,你随时可以去官网,免费阅读所有内容。
如果读完线上版本,觉得这件事值得支持,欢迎购买实体书。如果能够再为源码仓库加一颗 star,那就更好了。
(正文完)
================================
《ECMAScript 6 标准入门》第三版前言
四年前,我开始写这本书的时候,ECMAScript 5.1 版刚刚普及,最流行的框架还是 jQuery。ES6 看上去就像一个遥远的蓝图,无人知道何时会实现。
仅仅四年后,ES6 已经经历了 ES2015、ES2016、ES2017 三个版本的迭代,各种实现的支持度超过90%,不仅可以编写网页,还可以编写服务器脚本、手机 App 和桌面应用。程序员们完全接受了这个标准,甚至大量使用尚未标准化的新语法。JavaScript 语言就像一列高铁,以令人眩晕的速度向前猛冲。
互联网行业的蓬勃兴旺,造就了 ES6 的成功,也使得这本教程不断更新,越写越厚。第二版问世十八月之后,就不得不推出第三版。
第三版新增了三分之一的内容,完全覆盖了 ES2017 标准(上一版只做到覆盖 ES2015 标准),并且对所有章节都进行了修订,文字表达更准确易懂,示例更丰富。对读者来说,这个版本更容易学习,更有参考价值。
这四年来,我对 ES6 的理解和所有的学习笔记,都浓缩在这本教程里面。那些我自己感到最困难的地方,都做了详细讲解,给出了细致的示例,我相信这也是其他国内学习者需要的。
这本教程当然也包含了我的局限,以及细致检查之后仍然漏网的各种错误。一旦发现,我会第一时间更正。读者可以到官方仓库 github.com/ruanyf/es6tutorial 查看勘误。
我在微博上曾经说过一段话,就把它放在这里作为结束。
"我水平其实不高,只是好奇心重,从没想到这么多人会关注。希望不要让大家失望,未来做一块垫脚石,为需要的朋友提供帮助,为技术的推广和发展做出力所能及的贡献。"
阮一峰
2017年8月1日,写于杭州
(完)
林欣哲 说:
恭喜恭喜!
2017年9月19日 08:44 | # | 引用
Leo 说:
赞!
2017年9月19日 09:13 | # | 引用
66 说:
第二版买来还没看,能以旧换新吗 XD
2017年9月19日 09:27 | # | 引用
aaa 说:
阮老师,
强烈建议 去掉 es6 中的6,
书名还是用ES标准入门比较好,因为标准更新比较快,ES6容易让人产生过时的想法。
2017年9月19日 09:32 | # | 引用
业余草 说:
书厚了不少。ES6中的6去掉或者改为7比较合理!
2017年9月19日 09:43 | # | 引用
aaa 说:
es6tutorial
阮老师,这个源码怎么能搭建一个项目啊,可以访问的。
clone 后 不知道怎么用。
2017年9月19日 09:55 | # | 引用
AntSworD 说:
感觉已经名不副实了,很多内容并不是 es6的内容了
2017年9月19日 11:00 | # | 引用
CODE大全 说:
书名也很重要啊!看书名感觉内容很落后,看厚度感觉还可以,买书前必须要了解目录才知道真实内容。阮老师的大作,我很期待,淘宝上买一本去了!
2017年9月19日 11:11 | # | 引用
caoyy 说:
前段时间刚买了 第二版的电子版
支持优质技术类开源电子书义不容辞!
2017年9月19日 12:28 | # | 引用
joseph 说:
支持!已入第二版,准备再入第三版~
2017年9月19日 20:29 | # | 引用
打喜 说:
阮老师,请问您对最近的百度退react风波有什么看法吗
2017年9月19日 20:33 | # | 引用
蛋 说:
两个字------歇歇。
错
是这两个字-----------谢谢。
感谢阮老师的朴实易懂的知识。。。。。
2017年9月20日 09:33 | # | 引用
Adrian 说:
大家写代码的时候,都很习惯代码是黑底白字或者关键词高亮变色。在纸质书上看代码却没有这种待遇,阮老师的书是否可以出个彩色版,将代码部分与文字部分进行区割开,像你的blog一样易读,易用。
2017年9月20日 09:46 | # | 引用
kws 说:
太快了 太快了 阮達達~
2017年9月20日 11:40 | # | 引用
Donny 说:
请问阮老师对最近的百度退react风波的看法
2017年9月20日 15:14 | # | 引用
cccc 说:
要是有equb版就好了
2017年9月20日 15:48 | # | 引用
Will 说:
因此,ES6 既是一个历史名词,也是一个泛指,含义是5.1版以后的 JavaScript 的下一代标准,涵盖了ES2015、ES2016、ES2017等等,而ES2015 则是正式名称,特指该年发布的正式版本的语言标准。本书中提到 ES6 的地方,一般是指 ES2015 标准,但有时也是泛指“下一代 JavaScript 语言”。
2017年9月21日 11:25 | # | 引用
achao 说:
阮老师,排版有比第2版有所改进吗?
2017年9月21日 20:27 | # | 引用
孔令镖 说:
2017年9月22日 15:41 | # | 引用
tangym 说:
非常感谢,而且还开源了,再次感谢
2017年9月22日 16:35 | # | 引用
徐柠 说:
想问一下,为什么书里没有讲Promsie的实现,还有关于Job Queue的内容?
2017年9月23日 16:53 | # | 引用
伍仪洲 说:
恭喜!阮一峰写的书、文章简单明了,知识点到位,非常喜欢!
2017年9月25日 02:08 | # | 引用
sheldon 说:
请教下,难道ES2015,2016和2017都叫ES6吗?
网上大量看到ES7,ES8的说法,是准确的吗?
2017年9月25日 15:16 | # | 引用
PZC 说:
我同事买了一本,须然我不做开发,但是一直关注您。
2017年9月25日 21:36 | # | 引用
wibill 说:
我是初学者,等我学完ecma5就来拜读
2017年9月27日 00:34 | # | 引用
李 说:
帮助很大 谢谢
2017年9月27日 13:09 | # | 引用
Hugh 说:
请问阮老师,亚马逊会出电子版吗?
2017年9月27日 18:27 | # | 引用
小冉 说:
2017年9月28日 11:51 | # | 引用
随风 说:
以前自己的博客弄得花花绿绿的,偶然搜到了您的博客,真的是很惊艳的,干净的界面,没有任何的多余的元素,很舒服。有点想照搬呢23333。
2017年9月28日 23:29 | # | 引用
Albert 说:
支持阮老师,阮老师的文章给我和我的小伙伴带来了很大的启蒙,感觉一定程度上可能改变了我们的人生轨迹。三流院校跟小伙伴一起自甘堕落了四年,现在又重新找到了奋斗的方向哈哈哈!感激之情溢于言。最后那段微博又触动了我,超级感谢阮老师的各种分享。第一次留言,最后 希望老师身体健健康康的哈~ 毕竟人到中年精力不如我们这些小年轻~ (逃
2017年9月29日 02:54 | # | 引用
关二胖 说:
正好想要学习下ES6
2017年9月29日 13:52 | # | 引用
RichardMiao 说:
你也搞个赞助和捐款二维码吧, 你的劳动应该得到报酬, 自愿给你就好了。
2017年10月 2日 10:32 | # | 引用
dodo 说:
你网站载浏览器标签页上显示的小logo是在哪儿设置的啊,谢谢!
2017年10月 2日 13:07 | # | 引用
descent 说:
出版社願意出版一本 opensource 的書, 真是不簡單。
阮老師是怎麼說服出版社的, 讓你可以 opensource 這本書。
2017年10月 3日 15:42 | # | 引用
黄德豪 说:
阮一峰老师,您好。
之前您的文章下方有一个【科学上网】的商务合作,现在下架了。我之前购买过还挺好的,现在找不到了。您方便提供一下地址么?谢谢
2017年10月 7日 10:12 | # | 引用
气死牛 说:
已入手。其实还是看实体书比较舒服。
支持阮老师。
2017年10月 9日 13:20 | # | 引用
QI37 说:
ES6 电子版 101/164中 for(i of s){console.log(s)} 改成 for(let i of s){console.log(s)}就可以了。之前s is not defined
2017年10月 9日 16:00 | # | 引用
海 说:
老师,你是我的偶像
2017年10月11日 16:34 | # | 引用
宇智波.小新 说:
买了本支持下阮大神
2017年10月13日 16:01 | # | 引用
forward 说:
抱拳了,谢谢
2017年10月20日 09:40 | # | 引用
pageliu16 说:
感谢,老师的教程一直都是言简意赅。
2017年10月22日 20:39 | # | 引用
大白杏仁 说:
有阮一峰这样的老师真好
2017年10月22日 23:00 | # | 引用
jjl 说:
开源的是老的第一版,可以更新一下吗?和第三版同步
2017年10月25日 17:54 | # | 引用
Arvin 说:
github 以加星~~
2017年10月29日 22:39 | # | 引用
ziming 说:
第二版内容很好,但是排版要把人逼疯。。。代码居然没有缩进。强迫症实在看不下去,终于可以扔了二版买三版了
2017年10月30日 20:59 | # | 引用
YouGuess 说:
第二版的排版.....不好意思我拿去垫显示器了
2017年10月31日 17:56 | # | 引用
tan 说:
买一本放公司供大家翻阅
2017年11月 4日 20:51 | # | 引用
john 说:
老师,为什么vscode不能识别数组推导的呢?
2017年11月 5日 18:39 | # | 引用
jser 说:
电子版看过了,但还是在阮老师的倡导下,入手了第三版的纸质版,很赞。另外,突然想问下阮老师,书的封面的人物是谁呀,从哪来的?请原谅我的突然的好奇心驱使...
2017年11月 8日 22:05 | # | 引用
john 说:
class 继承原生类在webpack下有问题,
比如 class A extneds Array{
constructor{
super();
}
john(){}
tom(){}
}
var a = new A();
在webpack打包的情况下,a的原型链中找不到john和tom;
但是在chrome浏览器的环境中直接运行上面的代码,就可以获取到john&tom,
峰哥,求解!希望能尽快回复我,在线等!
2017年11月10日 10:59 | # | 引用
essa 说:
大神你谦虚了,,,你写的东西是真的好
2017年11月13日 11:25 | # | 引用
行风 说:
越是有高度的人越是谦虚
2017年11月21日 14:23 | # | 引用
山茶树和葡萄树 说:
2017年12月12日 15:14 | # | 引用
小江 说:
买了,,还没看过~~~
2017年12月14日 16:22 | # | 引用
叶建波 说:
第2版刚出那会,直接就买了,支持一下阮老师。也从新特性中了解到更多javascript的魅力。第2版还有一些没有看完的地方,这次第三版,准备买下来后,每个特性都写一个demo来熟悉,以能跑起来为准,真是超感谢阮老师对ES标准的推广,书本绝对物超所值。这次也要再买阮老师的新书。再谢。
2017年12月15日 16:17 | # | 引用
carl 说:
已经买了,支持阮哥
2017年12月18日 11:00 | # | 引用
彦明 说:
功德无量!随喜赞叹!
2017年12月30日 11:33 | # | 引用
胤斯 说:
入门必备,建议食用纸质版.
2018年1月 2日 18:51 | # | 引用
陈陈陈 说:
已入纸质版
2018年1月12日 17:03 | # | 引用
liuqd 说:
峰哥,我也想弄个个人博客网站,觉得你这款很漂亮,可以分享下不?
2018年2月27日 08:21 | # | 引用
靖新立 说:
阮一峰老师,我想查看javaScript的内置方法的源码怎么查看啊,比如:Object.sort()方法的实现方式是什么?
2018年3月 2日 17:02 | # | 引用
星璃 说:
万千感谢缩成一句,大大,我爱你!
2018年5月 8日 16:03 | # | 引用
youngleish 说:
大大我在看第三版的第一章块级作用域与函数声明部分中有一个栗子page 34:
function fun() {
console.log('I am outside');
}
(function() {
if (false) {
function fun() {
console.log('I am inside');
}
}
fun();
}());
书中说上述代码在 ES5中运行,会得到「I am inside」, 这个结果是错误的,ES5运行的结果是 fun is not a function
2018年5月10日 13:47 | # | 引用
付付 说:
小公司的普通前端程序员路过,我现在就是能实现功能就行了,不想再不断的学习新的前端技术了,太累了,只会用jq和vue,以及简单的npm和webpack,以后如果这些技术被彻底淘汰了,我想我也会转行了,原谅我这么没有梦想......
2018年6月29日 17:09 | # | 引用
陈乔 说:
最近在看老师的ES6书籍。发现了一个列子的问题
位置:
http://es6.ruanyifeng.com/#docs/object
tag: 7. Object.getOwnPropertyDescriptors() § ⇧
eg: Object.getOwnPropertyDescriptors也可以用来实现 Mixin(混入)模式。
该例子在reduce函数内部,用了Obejct.create(c) , 此处的c 会变成原型(混入越多,原型链就越深)。
利用assign就行包裹(当然没有考虑 deepcopy哈)
let mix = (object) => ({
with: (...mixins) => mixins.reduce(
(c, mixin) => Object.assign(c, Object.create(
null, Object.getOwnPropertyDescriptors(mixin)
)), object)
});
// multiple mixins example
let a = {a: 'a'};
let b = {b: 'b'};
let c = {c: 'c'};
let d = mix(c).with(a, b);
2018年8月 8日 17:58 | # | 引用
bear 说:
到公司实习看的的第一篇文档就是阮老师写的es6入门,学到很多东西,非常感谢
2018年9月10日 16:23 | # | 引用
小小东 说:
加油
2018年9月21日 14:39 | # | 引用
午後のお茶で一杯 说:
每个人各有各的活法。支持你。我的话一直在走技术的修罗之路,为此也失去了很多.
2018年9月27日 17:04 | # | 引用
pwstrick 说:
阮老师,我最近也出版了一本前端的书《前端程序员面试笔试宝典》,该怎么做推广,请指点一下。
2018年9月30日 15:27 | # | 引用
Charles Zhang 说:
想请问下阮老师,这本教材的纸质书内容和阮老师的 网上在线版本内容有些不一样,咱们是以哪个为主啊?比如说 第八章数组的扩展-网上课程介绍了flat方法,但是纸质教材上并没有这一小节,还有第九章对象的扩展-网上介绍了super关键字,而书上也木有,所以有些疑惑
2018年12月29日 20:28 | # | 引用
yashiro 说:
水平不高阮一峰(手动滑稽)
2019年2月25日 09:35 | # | 引用
张豪 说:
昨天去南京图书馆看了您的书,真的受益匪浅。大神让我明白还要学习更多知识啊
2019年3月16日 08:17 | # | 引用
陈子义 说:
阮老师,请问怎么放肆的使用新API呢,babel不转新API这点怎么处理呢
2019年9月20日 11:23 | # | 引用
轻舞飞扬 说:
谦虚、谦逊,谦谦君子
2020年2月 9日 16:11 | # | 引用
玲珑 说:
阮老师,您好。这本书第11章将weakSet的一个例子我运行结果和您书上不符合
213面的ws.has(obj)结果是true。
2020年3月 9日 13:38 | # | 引用
徐师傅 说:
老师 您的网址挂了 ES6那个
2020年3月25日 13:19 | # | 引用
Hari 说:
老师,es6.ruanyifeng.com上不去了
2020年3月25日 14:23 | # | 引用
肖 说:
这本书我买过,也算支持一下阮老师
2020年12月 2日 13:49 | # | 引用
IC 说:
厚道厚道
2021年3月30日 08:43 | # | 引用
宇轩 说:
2021.10.12打卡
还会更新第四版吗?
2021年10月12日 15:37 | # | 引用
罗新明 说:
写得非常好,例子很有启非性,真正的深入浅出。
2023年11月15日 14:24 | # | 引用