15年接触了CoffeeScript,代码之简单,让我惊讶。以前也写过javascript,但发现太冗余了,基本没有动力继续写下去。16年开始接触React以及React Native,也就正式了解了ES6语法,发现它和CoffeeScript很相近,并有了很大的改进。这几天参考了http://es6-features.org/,对ES6从新简单的学习,有如下几点思考。javascript
ES6支持新的特性有:
1. 常量
常量,这个很少说,大多数语言都有,如c,c++,java,go等。python以前也没有,PEP8中有部分支持。 加入常量以后,虽然不如以前灵活,但会常量会作类型检查,同时加快编译速度。
2. => 函数定义
=>函数定义, 相似于 CoffeeScript中函数绑定,能够将javascript中this关键词动态地绑定设定为当前函数挂在所在的对象上。=>绑定,使得原先函数绑定变得容易。同时因为ES6中语法中须要用{}()来进行代码分割,使得代码相比于CoffeeScript更加清晰,容易阅读。
3. 模板
模板,自动支持了模板机制,比以前ES5,不须要额外引入其余模板引擎。
4. 扩展参数处理
5. 解构赋值
扩展参数处理,是很是好的,用...来扩展参数,相似于go语法。相对容易理解。另外在函数解构赋值中,也和Go很相近,支持多变量赋值,以及默认参数。
6. 模块
是一种抽象。相似于Package或者namespace的概念。
7. 类(最大的改进)
终于开始支持面向对象编程,支持了继承,以及静态函数等相关操做;
8. Iterators 和 Generators
迭代和生成器,我理解如C++中的Iterator,以及Python中的迭代和生成器。但感受语法仍是有些复杂,但愿以后还可以改进。
9. Map/Set/WeakMap/WeakSet
对数据函数的进一步支持
10.内嵌函数
提供更多的内部函数封装,主要用模块以及面向对象来实现。
11. Promise
对异步操做进行更好的封装,在React-Native中已经直接可使用React.
12. 反射机制
反射机制相似于Go中Reflect,或者typeof 等机制
13. 国际化和本地化支持
这个很不错,在其它语言中也有支持。
以及其它
ES6语法使得JS愈来愈容易学习,也具备通用性,我感受比较深的,以上是和其它几种语法的分析和对比。固然小弟功力尚浅,有哪些不足支持,请你们多多批评指正。java