在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]);
这只是语法更改还是性能问题?