转载自 http://gejiawen.github.io/2015/07/28/es6-new-feature/#ES6新特性列表
| 新增特性 | 关键词 | 用法 | 描述 |
|---|---|---|---|
| 箭头操作符 | Arrows | v => console.log(v) | 类似于部分强类型语言中的lambda表达式 |
| 类的支持 | Classes | - | 原生支持类,让javascript的OOP编码更加地道 |
| 增强的对象字面量 | enhanced object literals | - | 增强对象字面量 |
| 字符串模板 | template strings | ${num} | 原生支持字符串模板,不再需要第三方库的支持 |
| 解构赋值 | destructuring | [x, y] = [‘hello’, ‘world’] | 使用过python的话,你应该很熟悉这个语法 |
| 函数参数扩展 | default, rest, spread | - | 函数参数可以使用默认值、不定参数以及拓展参数了 |
| let、const | let、const | - | javascript中可以使用块级作用域和声明常量了 |
| for…of遍历 | for…of | for (v of someArray) { … } | 又多了一种折腾数组、Map等数据结构的方法了 |
| 迭代器和生成器 | iterators, generator, iterables | - | ES6较为难以理解的新东西,后面会有相关文章 |
| Unicode | unicode | - | 原生的unicode更加完美的支持 |
| 模块和模块加载 | modules, modules loader | - | ES6中开始支持原生模块化啦 |
| map, set, weakmap, weakset | - | - | 新的数据结构 |
| 监控代理 | proxies | - | 我们可以监听对象发生了哪些事,并可以自定义对应的操作 |
| Symbols | - | - | 我们可以使用symbol来创建一个不同寻常的key,七种数据类型(null,undefine,int,String,bolloen,object,Symbol) |
| Promises | - | - | 这家伙经常在讨论异步处理流程时被提到 |
| 新的API | math, number, string, array, object | - | 原生的功能性API就是方便些 |
| 内置对象可以被继承 | subclassable built-ins | - | 可以基于内置对象,比如Array,来生成一个类 |
| 二进制、八进制字面量 | - | - | 可以直接在es6中使用二进制或者八进制字面量了 (for WebGL) |
| Reflect API | - | - | 反射API? |
| 尾调用 | tail calls | - | ES6中会自动帮你做一些尾递归方面的优化 |