这两天在看React的一些东西。接触到了ES6。谈谈一些粗浅的看法。
ES6其实是个简称。这东西学名叫做ECMAScript 2015,或者ES 2015。是Javascript语言的一个新版本。新版本当然有新特性啦。ES6基本上是把Javascript里面比较独(qi)特(pa)的玩意儿给熨平了。我曾经听过一个podcast [1]。里面有人形容Javascript(ES6之前)为 "Charmingly Eccentric"。可以直译为“古怪到有魅力”。这里当然说的是Javascript里面的基于prototype的OO。ES6里面基本上这些是被弱化了的,或者说是被隐藏起来了。
罗列一些ES6的新东西(具体上面这些都是啥就不仔细讲了--网上教程很多):
class
keywordextends
keyword字符串模板
解构
默认参数值
generator and
yield
keyworditerator like
for foo of bar
promise
当然啦,还有一些其它的新特性我就不一一列举了(其实是不懂)。在上面这些当中,除了promise之外,几乎都向流行的语言语法靠拢。尤其是向python靠拢。1-7无一不是python所有的语法。如yield
之类更是照抄。
我的理解,这样改进标准的意义在于使得新手更加容易学习了。现在javascript用的人越来越多。用途越来越广。而之前的"charmingly eccentric"的语法使得入门的门槛变高了。对我这种比较熟悉python的人来讲,可以直接用熟悉的语法来编写程序,然后transpile一下即可,对生产力还是有提高的意义的。但是,于此同时,javascript作为语言的独特魅力被削弱了。毕竟不是每种语言都有prototype,不是每种语言都有无数callback的。应该说,理解这些“传统”的语法对ES6也很有意义。因为毕竟这些只是被隐藏,而不是被剔除。真正用起来如何,还是要真正写几个non-trivial的程序才知道。