标签:
15年接触了CoffeeScript,代码之简单,让我惊讶。之前也写过javascript,但发现太冗余了,基本没有动力继续写下去。16年开始接触React以及React Native,也就正式了解了ES6语法,发现它和CoffeeScript很相近,并有了很大的改进。这几天参考了http://es6-features.org/,对ES6重新简单的学习,有以下几点思考。
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越来越容易学习,也具有通用性,我感觉比较深的,以上是和其它几种语法的分析和对比。当然小弟功力尚浅,有哪些不足支持,请大家多多批评指正。
标签:
原文地址:http://www.cnblogs.com/purejade/p/5420762.html