es6中扩展运算符( 三个点 )

发布于 2022-09-05 03:34:21 字数 237 浏览 28 评论 0

图片描述

为什么我在chrome的控制台测试es6新的语法...+数组的时候,还要写上console.log,我现在不是在chrome的console里面了吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

浮光之海 2022-09-12 03:34:21

...iterable 这种写法本身是没错啦,但是它展开之后相当于是逗号分隔的值列表,所以一般用在数组内或者函数调用的参数内。注意它不能展开当逗号运算符连续的多个值,所以不能直接用于表达式。

比如

a = [1,2,3]
b = [...a]   // [1, 2, 3]
c = [0, ...a]  // [0, 1, 2, 3]
d = [0, ...a, 9]  // [0, 1, 2, 3, 9]

function test(a, b, c) {
    console.log(a, b, c);
}

test(...a); // 1 2 3
北斗星光 2022-09-12 03:34:21

语法错误啊。

... 是数组展开运算符。

你可以用在:

  1. 数组

    const a = [1, 2];
    const b = [a, 3];
  2. 函数

    const params = [1, 2];
    Math.max(...params);

console.log 就是第二种用法。

扩展语法允许一个表达式在期望多个参数(用于函数调用)或多个元素(用于数组字面量)或多个变量(用于解构赋值)的位置扩展。

重点是期望

所以 ...扩展。

有人把它称为三点运算符。其实,这个运算有两个含义,对应的英文是:rest 和 spread。他们也有区别:

...rest 必须是参数列表的最后一个参数!
...spread 无限制!

抠脚大汉 2022-09-12 03:34:21

const [a, ...b] = [1, 2, 3]

这样的呀,兄弟

月棠 2022-09-12 03:34:21

这种语法叫做扩展运算符,返回的是数组的iterator接口。
应该是console.log()语句才支持迭代iterator。

岛歌少女 2022-09-12 03:34:21

let a = [...[1,2,3]];
console.log(a);

破晓 2022-09-12 03:34:21

console.log(...[1, 2, 3]) == console.log(1, 2, 3)

console.log 支持传多个参数,并顺序输出,所以成功了。

let a = ...[1, 2, 3] 等于什么呢? let a = 1, 2, 3 ??? 这样明显是不可以的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文