「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战」。
ES系列文章
- ES6 变量常量(let const)
- 解构赋值
- ES5数组遍历方式
- ES6数组遍历方式
- 数组的扩展
- ES6函数的参数
- 扩展运算符和rest参数 扩展运算符是把数组或类数组展开成逗号隔开的值,而rest参数是相反的把逗号隔开的值组合成一个数组。二者是一个想法的操作
扩展运算符(...)
扩展运算符:把数组或类数组展开成逗号隔开的值
应用:
function foo(a, b, c){
console.log(a, b, c)
}
let arr = [1, 2, 3]
foo(...arr)
//[1 2 3]
解构赋值:
function foo([a, b, c]){
console.log(a, b, c)
}
let arr = [1, 2, 3]
foo(arr)
//1 2 3
合并数组:
es5写法:
let arr1 = [1,2,3]
let arr2 = [4,5,6]
Array.prototype.push.apply(arr1, arr2)
console.log(arr1)
//1 2 3 4 5 6
es6写法:
let arr1 = [1,2,3]
let arr2 = [4,5,6]
arr1.push(...arr2)
console.log(arr1)
//1 2 3 4 5 6
字符串
let str = 'hello'
let arr = [...str]
console.log(arr)
rest参数(...)
rest参数:把逗号隔开的值组合成一个数组
arguments的写法:
arguments不是真正意义上的数组,而是一个伪数组。
es5写法:
function foo(x,y,z){
let sum = 0
Array.protptype.forEach.call(argunments,function(item){
sum += item
})
return sum
}
console.log(foo(1,2))
console.log(foo(1,2,3))
//3
//6
es6写法:
function foo(x,y,z){
let sum = 0
Array.from(arguments).forEach(function(item){
sum += item
})
return sum
}
console.log(foo(1,2))
console.log(foo(1,2,3))
//3
//6
rest的写法:(剩余运算符)
跟前面扩展运输符想法的
function foo(...b) {
console.log(b)
}
console.log(foo(1,2))
console.log(foo(1,2,3))
//1 2
//1 2 3
注意,rest 参数之后不能再有其他参数,否则会报错。
function foo(...b) {
console.log(b)
let sum=0
b.forEach(function(item){
sum += item
})
return sum
}
console.log(foo(1,2))
console.log(foo(1,2,3))
//1 2
//3
//1 2 3
//6
function foo(x,...b){
console.log(x)
console.log(b)
}
foo(1,2,3)
foo(1,2,3,4)
//1 [2,3]
//1 [2,3,4]
let [x, ...b]=[1,2,3]
console.log(x)
console.log(b)
//1 [2,3]
一个前端小白,若文章有错误内容,欢迎大佬指点讨论!