es6中扩展运算符( 三个点 )
为什么我在chrome的控制台测试es6新的语法...+数组
的时候,还要写上console.log
,我现在不是在chrome的console里面了吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
为什么我在chrome的控制台测试es6新的语法...+数组
的时候,还要写上console.log
,我现在不是在chrome的console里面了吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
...iterable
这种写法本身是没错啦,但是它展开之后相当于是逗号分隔的值列表,所以一般用在数组内或者函数调用的参数内。注意它不能展开当逗号运算符连续的多个值,所以不能直接用于表达式。比如
语法错误啊。
...
是数组展开运算符。你可以用在:
数组
函数
console.log
就是第二种用法。重点是期望。
所以
...
是被扩展。有人把它称为三点运算符。其实,这个运算有两个含义,对应的英文是:rest 和 spread。他们也有区别:
...spread
是扩展操作...rest
是剩余操作const [a, ...b] = [1, 2, 3]
这样的呀,兄弟
这种语法叫做扩展运算符,返回的是数组的iterator接口。
应该是console.log()语句才支持迭代iterator。
let a = [...[1,2,3]];
console.log(a);
console.log(...[1, 2, 3]) == console.log(1, 2, 3)
console.log
支持传多个参数,并顺序输出,所以成功了。而
let a = ...[1, 2, 3]
等于什么呢?let a = 1, 2, 3
??? 这样明显是不可以的。