# 详解JavaScript扩展运算符的8种用法

90 阅读2分钟

hello 大家好,🙎🏻‍♀️🙋🏻‍♀️🙆🏻‍♀️

我是一个热爱知识传递,正在学习写作的作者,前端明明

好久不见哈!转眼间2022年过了大半,又十一了。面对今年的互联网寒冬,真是让人怕怕的,大厂裁员,工作不好找,要想保持竞争力只有不断的学习。于是在家做总结。

1. 数组的浅拷贝

   const arr1 = [1, 2, 3];
   const arr2 = [...arr1];
   console.log(arr2); // [1,2,3]

2. 向数组里添加元素

let arr1 = [1, 2, 3];
arr1 = [...arr1,4,5];
console.log(arr1); // [ 1, 2, 3, 4, 5 ]

3. 数组的合并

let arr1 = [1, 2, 3]; 
let arr2 = [4,5];
arr1=[...arr1,...arr2]
console.log(arr1)

4. 向对象里添加属性

假如你有个对象wkm,但是他却了一个age 属性

const wkm = { 
  firstname: 'wang', 
  lastname: 'kaiming' 
}; 

要向wkm 这个对象里添加个age属性

let addWkm={...wkm,age:'18'}  // { firstname: 'wang', lastname: 'kaiming', age: '18' }

5.合并对象

 let obj = { a: 1, b: 2 }
 let obj2 = { c: 3 }
 obj = {...obj,...obj2}
 console.log(obj)  // {a: 1, b: 2, c: 3}

6. rest 参数

ES6 引入 rest 参数(形式为...变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。

function add(...values) {
  let sum = 0;
​
  for (var val of values) {
    sum += val;
  }
​
  return sum;
}
add(2, 5, 3) // 10

上面代码的add函数是一个求和函数,利用 rest 参数,可以向该函数传入任意数目的参数。

下面是一个 rest 参数代替arguments变量的例子。

// arguments变量的写法
function sortNumbers() {
  return Array.from(arguments).sort();
}
​
// rest参数的写法
const sortNumbers = (...numbers) => numbers.sort();

上面代码的两种写法,比较后可以发现,rest 参数的写法更自然也更简洁。

7 展开字符串

const str = 'abc';
const arr = [...str];
console.log(arr);
// [ 'a', 'b', 'c' ]

8 结构对象

假设有一个对象wkm

const wkm = {
            firstNane: 'wkm',
            lastName: 'kaiming',
            age: 18
        }
   let { firstNane, ...rest } = wkm
   console.log("kkkkk", firstNane,"剩余参数", rest) // kkkkk wkm 剩余参数 {lastName: 'kaiming', age: 18}

总结以上八种扩展运算符的使用,要是大家还知道其他妙用请大家不吝赐教。