函数的扩展
扩展符号…
ES6 新增了符号
...
,该符号类似于剩余函数的逆运算,能将一个数组变为一组参数传入函数中,只要实现了Iterator
接口的对象,都可以使用该符号转换数组
|
|
箭头函数
箭头函数能很方便地创建匿名函数,特别是在 JavaScript 这种回调大量应用的语言中,箭头函数能让语法看起来更自然,使用起来也更便捷
箭头函数需要注意一下几个点:
this
指向创建函数时的对象,而非执行时的对象- 无法将其作为构造函数,即无法
new
,否则会报错 - 无法使用
arguments
,不过可以使用剩余函数rest
来实现相同效果 - 无法使用
yield
命令,即无法作为Generator
函数
|
|
ES6 对函数还有一个 Tail call optimization
(即“尾调用优化”),等后面再重新写一篇文章分析,尾调用优化将会大大避免递归的栈溢出
对象的扩展
简写
ES6 中对象中属性的声明有了简便的做法,请看代码
|
|
判断对象相等
ES6 使用
Object.is()
来判断两个对象是否相等,相对于使用==
和===
,有以下两个区别
|
|
对象复制
ES6 使用
Object.assign()
对一个对象进行复制,但是执行的是浅复制,如果被复制的对象中有属性是一个对象,那么该对象的属性将会被共享
|
|
以上实例代码大部分来自阮一峰老师的 《ECMAScript 6 入门》 一书
书籍在线阅读地址: http://es6.ruanyifeng.com/#README