转载自 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中会自动帮你做一些尾递归方面的优化 |