02-在当下编写ES6代码
2.1 在当下编写ES6代码
首先要公布两个消息,一好一坏。好消息是ES6(aka Harmony,aka Java-Script 2015)的出现实属JavaScript历史上一个激动人心的变革。坏消息是大家还没有为它的到来做好充分的准备。但是这并不是说现在不能用它,只是它会给使用它的开发人员带来一些额外的负担,因为必须将ES6代码转换成“安全”的ES5代码,才能保证这些代码可以运行在任何浏览器上。
一些有经验的开发人员可能会觉得“这不是问题,看看我一天的工作,没有一个编程语言是不需要编译的!”作者本人已经从事软件开发工作很久了,所以对那些时刻需要编译的日子记忆犹新,但并不怀念那些时光。相反,很享受像JavaScript1这样的解释型语言所带来的轻便。[1]
JavaScript的优点之一是它几乎无处不在:它几乎在一夜之间变成了浏览器的标准脚本语言,而随着Node的出现,JavaScript的应用场景也不再局限于浏览器。所以意识到后面这一点会有点令人不快,因为可能要等到几年之后,才能随心所欲的编写ES6代码而不用担心浏览器是否支持。如果读者是一名Node开发者,情况会乐观一些,因为只是需要关注一个JavaScript引擎,而且还可以跟踪Node对ES6的支持状况。
本书中的ES6代码可以在Firefox,以及一些类似ES6 Fiddle的网页中运行。不过对于那些“真实项目中的代码”,依旧要使用本章中介绍的工具和技术将ES6代码转成ES5。
比较有意思的是JavaScript从ES5升级到ES6的过程是循序渐进的,这点与过去的编程语言版本升级不太一样。也就是说,目前使用的浏览器可能只支持一部分ES6特性。这种循序渐进的方式一方面由JavaScript原生的动态特性所决定,另一方面由浏览器本身升级所导致。大家可能听过常青树这个用来描述浏览器的术语,浏览器制造商也在逐渐取消浏览器不同版本之间必须通过升级来保持同步的理念。他们主张浏览器应该时刻保持最新版本,因为它们一直处于联网状态(至少如果它们希望获得最新版本的特性)。如今浏览器依然存在不同的版本,不过现在更有理由假设用户使用的都是最新的—因为常青树浏览器一定会自动替用户升级。
即使是常青树浏览器,也需要一些时间才能支持ES6的所有特性,所以目前我们还需要借助转换编译器(也叫转换器)。
本书中的ES6代码可以在Firefox,以及一些类似ES6 Fiddle的网页中运行。不过对于那些“真实项目中的代码”,依旧要使用本章中介绍的工具和技术将ES6代码转成ES5。