问题标签 [spread-syntax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
12806 浏览

javascript - javascript中rest参数和扩展运算符的使用

将在 ECMAScript 6 中添加的 rest 参数的用途是什么?

例如,在 ECMAScript 5 中,您可以执行以下操作来获取从第二个元素开始的参数数组:

这将等同于 ECMAScript 6 中的以下代码:

它们之间的区别仅仅是语法还是存在性能问题?

也适用于扩展运算符 (...)

这只是语法更改还是性能问题?

0 投票
47 回答
276791 浏览

javascript - 如何深度合并而不是浅合并?

Object.assign和Object spread都只进行浅合并。

问题的一个例子:

输出是您所期望的。但是,如果我尝试这个:

代替

你得到

x 被完全覆盖,因为扩展语法只深入一层。这与Object.assign().

有没有办法做到这一点?

0 投票
1 回答
42 浏览

javascript - 为什么直接在 Array 实例上调用 Array.prototype.map 会导致“未修改”数组?

为什么Array.prototype.map直接在 Array 实例上调用会o导致“未修改”数组?

相反,我必须使用应用(或调用):

我错过了什么?

最后,上面的替代方案是:

我想是因为这可以纠正我原始实现中缺少的任何内容。

0 投票
20 回答
487800 浏览

javascript - React 中的这三个点有什么作用?

在这个 React(使用 JSX)代码中做了什么...,它叫什么?

0 投票
2 回答
923 浏览

javascript - 我应该在 Math.max(...arr) 中使用什么来代替 Chrome 的扩展运算符?

我知道 Chrome 浏览器不支持传播运算符。现在我有了这段代码:

上面的代码在 Chrome 中总是给我这个错误(但适用于 Mozilla 和 Safari):

我在网上搜索了很多,但我找不到任何有用的答案。所以请帮助我找出我应该使用什么来代替 chrome 中的扩展运算符来执行代码中执行的相同任务。

提前感谢您的帮助。

0 投票
7 回答
63124 浏览

javascript - 使用扩展语法和 new Set() 与打字稿

我正在使用以下代码来获取唯一编号:

但是,打字稿报告以下错误:类型'Set'不是数组类型。 我不是打字稿忍者,有人能告诉我这里有什么问题吗?

0 投票
11 回答
32725 浏览

javascript - ES2015 / ES6 中的扩展语法与休息参数

我对 ES2015 中的扩展语法和休息参数感到困惑。任何人都可以用适当的例子解释它们之间的区别吗?

0 投票
5 回答
7729 浏览

javascript - 扩展语法 ES6

考虑以下示例代码

在这里, 和 的值d完全相同e,等于 ["a", "b", "c", "p", "q"],所以,

  1. 这两者之间究竟有什么区别?
  2. 哪个更有效,为什么?
  3. 扩展语法到底有什么用?

您不认为在正式的庞大语言中引入这些小快捷方式可能会留下一些未被注意到的错误,我的意思是要么它非常不必要,要么我没有意识到它的必要性。

0 投票
4 回答
4697 浏览

javascript - 在javascript中多次使用扩展运算符?

为什么不能多次使用传播运算符?

我希望:

0 投票
3 回答
9409 浏览

javascript - 扩展运算符不适用于基于 Redux/ES6 的示例

我正在尝试了解 Dan Abramov 发布的 Redux 在线教程。目前我在以下示例中:

使用数组的减速器组合

这是我在上述示例之后的练习代码:

问题是,在 todoReducer 函数中,以下语法不起作用:

我使用的是 Firefox 44.0 版,它在控制台中显示以下错误:

现在我想我当前版本的 Firefox 必须支持 Spread 运算符。如果无论如何它没有,有没有办法添加一些独立的 Polyfill 来支持这种语法?

这里也是JSFiddle