ECMAScript 6 中新增的rest 参数有什么用?
例如,在 ECMAScript 5 中,您可以执行以下操作以获取从第二个元素开始的参数数组:
// ES 5
store('Joe', 'money');
store('Jane', 'letters', 'certificates');
function store(name) {
var items = [].slice.call(arguments, 1); //['money'] in first case
items.forEach(function (item) {
vault.customer[name].push(item);
});
}
这将等同于 ECMAScript 6 中的以下代码:
// ES 6
store('Joe', 'money');
store('Jane', 'letters', 'certificates');
function store(name, ...items) {
items.forEach(function (item) {
vault.customer[name].push(items)
});
}
它们之间的区别只是语法还是存在性能问题?
也适用于展开运算符 (...)
//in ecmascript5
var max = Math.max.apply(null, [14, 3, 77]);
//but in ecmascript6
var max = Math.max(...[14, 3, 77]);
这只是语法更改还是性能问题?
最佳答案
Is the difference between them is just syntax or there's a performance issue?
两者,还有更多...
休息参数:
- 是其他语言(Ruby、Python)中的已知习语。
- 更易于阅读和维护(与
slice
相比)。 - 对于初学者更容易理解。
- 可以(并且很可能会)产生更好的性能,因为引擎可以优化。
- 工具更友好,因为它们可以进行静态分析。
关于javascript - javascript中rest参数和展开运算符的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20541339/