首页 > 技术文章 > 扩展运算符与rest参数

feiying3995 2021-06-12 20:51 原文

今天小编来介绍一个平时接触较少的,但是却给平时编码带来很多方便的ES6语法——三个点。这三个点主要是针对数组的格式转换。大家也可以关注我的微信公众号,蜗牛全栈。
一、扩展运算符:把数组或者类数组展开成逗号隔开的值实例1:

function foo(a,b,c){
    console.log(a,b,c)
}
let arr = [1,2,3]
foo(...arr) // 1 2 3
console.log(...arr) // 1 2 3

实例2:连接两个数组

let arr1 = [1,2,3]
let arr2 = [4,5,6]
// es5
Array.prototype.push.apply(arr1,arr2) // [1,2,3,4,5,6]
// es6
arr1.push(...arr2)
console.log(arr1) // [1,2,3,4,5,6]

实例3:字符串

let str = "hello"
let arr = [...str]
console.log(arr) // ["h","e","l","l","o"]

二、rest参数:将逗号隔开的值转换为数组实例

1:函数参数

function foo(...args){
    let sum = 0
    args.forEach(function(item){
        sum += item
    })
    return sum
}
console.log(foo(1,2)) // 3
console.log(foo(1,2,3)) // 6
function foo(x,...args){
    console.log(x)
    console.log(args)
}
foo(1,2,3,4) // 1 [2,3,4]

实例2:与解构赋值结合

let [x,...y] = [1,2,3]
console.log(x) // 1
console.log(y) // [2,3]

 

推荐阅读