这两天在看React的一些东西。接触到了ES6。谈谈一些粗浅的看法。

ES6其实是个简称。这东西学名叫做ECMAScript 2015,或者ES 2015。是Javascript语言的一个新版本。新版本当然有新特性啦。ES6基本上是把Javascript里面比较独(qi)特(pa)的玩意儿给熨平了。我曾经听过一个podcast [1]。里面有人形容Javascript(ES6之前)为 "Charmingly Eccentric"。可以直译为“古怪到有魅力”。这里当然说的是Javascript里面的基于prototype的OO。ES6里面基本上这些是被弱化了的,或者说是被隐藏起来了。

罗列一些ES6的新东西(具体上面这些都是啥就不仔细讲了--网上教程很多):

  1. class keyword

  2. extends keyword

  3. 字符串模板

  4. 解构

  5. 默认参数值

  6. generator and yield keyword

  7. iterator like for foo of bar

  8. promise

当然啦,还有一些其它的新特性我就不一一列举了(其实是不懂)。在上面这些当中,除了promise之外,几乎都向流行的语言语法靠拢。尤其是向python靠拢。1-7无一不是python所有的语法。如yield之类更是照抄。

我的理解,这样改进标准的意义在于使得新手更加容易学习了。现在javascript用的人越来越多。用途越来越广。而之前的"charmingly eccentric"的语法使得入门的门槛变高了。对我这种比较熟悉python的人来讲,可以直接用熟悉的语法来编写程序,然后transpile一下即可,对生产力还是有提高的意义的。但是,于此同时,javascript作为语言的独特魅力被削弱了。毕竟不是每种语言都有prototype,不是每种语言都有无数callback的。应该说,理解这些“传统”的语法对ES6也很有意义。因为毕竟这些只是被隐藏,而不是被剔除。真正用起来如何,还是要真正写几个non-trivial的程序才知道。


  1. javascript jabber


仗键去国
1.5k 声望10 粉丝

码农; 顾问; 架构师; kubernetes, Openstack and docker 贡献者