JavaScript学习笔记_ES6_剩余运算符(rest)
2019-11-20 本文已影响0人
菜出意料
rest的形式为...变量名,是一个数组。
在函数中使用
用于获取函数的多余参数。可以将rest参数理解为Java中的可变参数
// 可将...items理解为arguments
function f (...items) {
console.log(Array.isArray(items)) // true
console.log(items) // [ '4', 3, 6 ]
for (let i in items) {
items[i] += 1
}
console.log(items) // [ '41', 4, 7 ]
items.push(1, 2, 3)
console.log(items) // [ '41', 4, 7, 1, 2, 3 ]
}
f('4', 3, 6)
rest参数必须在函数参数列表最后的位置,否则,会报错。
// ...items必须在参数列表的最后,示例代码报错
function f (...items, o) {} // SyntaxError: Rest parameter must be last formal parameter
函数的length属性,不包括rest参数。
function f (o, ...items) {}
f.length // 1
function g (...items) {}
g.length // 0
在解构赋值中使用
let [...items] = [1, 2, 3, , 4]
console.log(items) // [ 1, 2, 3, undefined, 4 ]