扩展运算符:把数组或者类数组展开成用逗号隔开的值 rest参数:把逗号隔开的值组合成一个数组
扩展运算符
function foo(a, b, c){
console.log(a, b, c)
}
let arr = [1, 2, 3]
foo(...arr)
合并数组
let arr1 = [1, 2, 3]
let arr2 = [4, 5, 6]
// ES5 Array.prototype.push.apply(arr1, arr2)
// ES6
arr1.push(...arr2)
console.log(arr1)
// 打散用逗号隔开
let str = 'juejin'
var arr = [...str]
console.log(arr)
rest 参数
function foo(x, y, z){
console.log(arguments)// 并不是真正意义的数组而是而数组
// ES5 的写法
// let sum = 0
// Array.prototype.forEach.call(arguments, function(item){
// sum += item
// })
// return sum
let sum = 0
Array.from(arguments).forEach(function(item)){
sum += 0
}
return sum
}
console.log(foo(1, 2))
console.log(foo(1, 2, 3))
// 通过... 就直接把当前这个参数变成一个数组,这个就叫做rest 运算符,或者剩余运算符
function foo(...args){
console.log(args)
let sum = 0
args.forEach(function(item){
sum += item
})
return item
}
console.log(foo(1, 2))
console.log(foo(1, 2, 3))
function foo(x, ...args){
console.log(x) // 1
console.log(args) // 剩余的参数都存在args里面
}
foo(1, 2, 3)
foo(1, 2, 3, 4)
解构
let [x, ...y] = [1, 2, 3]
console.log(x) // 1
console.log(y) // 2 3