《ECMAScript6入门》试读随笔
一提到JavaScript,相信大家都很熟悉,但是提到ECMAScript可能就感觉比较陌生了。JavaScript的前身是LiveScript脚本语言,Netscape公司在与Sun公司联手完成LiveScript脚本语言后,将其改名为JavaScript,更名的用意听说是为了借助Java的强劲势头推动JavaScript。JavaScript1.1时,由ECMA国际(一家国际性会员制度的信处和电信标准组织)组织了Netscape、Sun、MicroSoft、Borland等大公司以及一些对脚本编程感兴趣的公司的程序员共同提炼并制定出ECMA-262标准,该标准将ECMAScript定义为一种全新的脚本程序设计语言。
ECMA-262被定义为一种国际标准,ECMAScript被定义为一种脚本语言,但我感觉直接将ECMAScript理解为一种规格、一种标准,似乎更容易为人所接受。实际上ECMAScript仅仅是一个描述,它定义了脚本语言的所有属性、方法和对象,主要包括:语法、类型、语句、关键字、保留字、运算符和对象几个组成部分。以ECMA-262为基准,对ECMAScript进行具体实现与扩展的除了众所周知的JavaScript以外,还有大名鼎鼎的ActionScript。此外,JavaScript因不同公司的不同实现,还可以进一步细分为三个分支,分别是:Netscape的JavaScript、MicroSoft的JScript和CEnvi的ScriptEase。
在讲述ECMAScript与JavaScript的关系时,还有一点需要说明。除了ECMAScript(描述了该语言的语法和基本对象)之外,BOM(浏览器对象模型,描述与浏览器进行交互的方法和接口)与DOM(文档对象模型,描述处理网页内容的方法和接口)都是JavaScript的重要组成部分,它们共同构建成一个完整的JavaScript。
随着时间的推移,技术的进步,目前已发布的最新正式标准,其版本为ECMA-2625thEdition。如果ECMAScript6正式推出后,该标准的版本又将改朝换代。在谈论ECMAScript6之前略述一下ECMAScript5,我觉得是很有必要的。ECMAScript5添加了一些新的特性,String的trim方法,Array的forEach方法、indexOf方法、filter方法、reduce方法、every方法、some方法,Function的bind方法,Object的create方法、defineProperty方法,JSON对象……有些方法应该说是早期版本考虑不周没有提供,在编码过程中需要我们自己去实现。而这些在ECMAScript5都得到解决,让编码人员可以直接调用,省时省力,轻松不少。
ECMAScript5给大家带来不少“福利”,那么ECMAScript6又将给我们带来哪些惊喜呢?我们通过本次的试读来找寻一些答案吧:第一章中class这个字眼很快映入眼帘,class一直以来是ECMAScript的保留字,为了让ECMAScript实现面向对象的一些特性,在以前版本我们只能用比较繁琐的方式去模拟类。有了class以后,我们应该编写起来方便很多,同时是不是可以实现面向接口编程这样的特性,我们拭目以待。第二章中介绍了两个新的特性,个人感觉都有其必要性。先来看看let命令,这个特性让ECMAScript终于有了块级作用域,这样的方式让变量掌控在自己预期的范围内,用起来比较舒心。以前感觉匿名函数立即执行(IIFE)的方式有点怪异,不过如果随着let命令的使用,以后IIFE真的因此慢慢消失了,心中会不会有几分眷恋?也许吧,估计每个人心中都有点怀旧情结。再来看看const命令,有其它编程语言经历的人,应该看到这个命令会感觉很亲切吧,的确,它就是用来定义常量的。常量的特点就是定义后不能再改变,这样的特性非常有用,相信广大编程人员已有体会,在此不再赘述。第三章中讲述了变量的解构赋值,这样的语法简洁、高效、优雅、便捷,非常喜欢!
没想到一口气写了一千多字的书评,总之对ECMAScript6满怀期盼!