« 回到博客列表

每天一点ES6(1):概述

Jan 24th, 2016阅读本文大约需要 4 分钟

本系列是对阮一峰老师的开源著作 《ES6 标准入门》 的学习笔记,通过博客的方式强迫自己将学到的东西解释给别人听,进而加深认识,同时也算为推广ES6贡献一点绵薄之力吧。

ES6是啥?

ECMAScript 6(简称ES6)是 JavaScript 的最新标准,发布于 2015 年 6 月。这项标准的制定者 ECMA 计划以后每年发布一次标准,使用年份作为标准的版本,因此 ES6 正式叫法应该是 ECMAScript 2015(简称 ES 2015)。明年预计会发布小幅修订的 ES 2016(至于是叫 ES7 还是 ES6.1,就要到时候看各位大大们的兴致了)。

这次 ES6 之所以受到业界的重视,不仅仅是因为主版本号加一了,更重要的是,ES6 打算将 JavaScript 应用到复杂的大型应用程序的开发中,使之成为一门企业级开发语言。JavaScript 曾经一度被认为是一种玩具语言,只能在网页开发中小有作为,难成大器,但随着 HTML5、PhoneGap、Node.js、React Native 等各种技术的出现,现在的 JavaScript 已经成为了本世纪最重要的编程语言之一,前端开发更是因此从一个可有可无的角色一跃成为了招聘和培训的大热门。

有 ES6,那自然就有 ES1、2、3、4、5。关于它的历史……说来话长,但是挺有意思的,想了解的可以去看阮一峰老师的原著,我这儿就不罗嗦了。目前浏览器普遍兼容的最新标准是 ES5,在这之前一个比较重要的版本是 ES3,市面上绝大部分的教材都是以 ES3 为基础,涉及 ES5 的部分只说差别,专门讲 ES6 的教程并不多,除了官方文档外一共有3本书:

相比之下,还是阮一峰老师的这本最实用,中文的,免费的,在业内评价也很高。(为了表达对阮一峰老师的感谢与崇敬之情,整个系列我会不断安利这本书。推荐在线看,在线的已经更新到第二版了,纸质书还是第一版的,内容不及现在这么全)

2017-04-17:纸质版在 15 年底出了第二版,不过还是推荐在线看,因为一直有在更新,包括 ES6 之后的内容(ES 2016、2017、2018 ……)也会不断的补充进来,估计要不了多久阮大大的这个系列就可以改名《ES 标准入门》了,哈哈。

ES6 的支持度

主流浏览器都已经开始拥抱 ES6。值得注意的是,这次微软放大招了,IE11 和 Microsoft Edge 13 的支持进度竟然名列前茅(以该博客发布时为参考),甚至超越了 Firefox、Chrome 和 Safari,似乎是打了一场漂亮的翻身仗啊。目前 Node.js 平台对 ES6 的支持度是最好的,基本已经全部覆盖,可以使用命令 node --v8-options | grep harmony 来查看当前环境所支持 ES6 的内容的列表,还可以用阮一峰老师开发的 ES-Checker 来查看当前环境的支持度。

虽然各家进度不一,但终究也只是时间的问题。详细的支持情况可以参考 ECMAScript 6 compatibility table

过渡阶段的方案

虽然 ES6 的支持情况非常乐观,目测要不了多久就能全面支持,但就目前而言,在生产环境下使用 ES6 还是比较困难的。好在有 BableTraceur 这样的转换工具,可以把 ES6 的代码转换成 ES5,以此让开发者们尝鲜 ES6 的语法。两者都支持运行在 Node.js 环境中编译好后发布,也可以在浏览器中实时编译,用于学习的话后者显然更方便,但对于生产环境,还是推荐在 Node.js 中编译好,然后直接发布 ES5 的代码,这样执行效率更高。

展望一下 ES 7

2013 年 3 月,ES6 的草案封闭,不再接受新功能,新的功能将被加入 ES7 及之后版本的标准中。关于 ECMAScript 的最新动态,可以关注 ES 标准的草案

关于该系列

从标题“每天一点ES6”可以看出,理论上这是一个日更的系列,我也会尽力做到日更,但毕竟我也不是闲着没别的事有大把的时间可以写博客,因此如果没有日更……你~能~拿~我~怎~么~样?

该系列的其他文章