ES6扩展运算符(...)

在 ES6 中,扩展运算符(...)是一种用来展开数组和对象的语法。它可以将一个数组或对象展开,以便在函数调用、数组字面量或对象字面量中使用。

 1 // 1. 在数组中的应用:
 2 let arr = [1,2,245,6]
 3 let arr1 = [...arr,3,5,7]
 4 console.log(arr1) //[1, 2, 245, 6, 3, 5, 7]
 5 
 6 // 2. 在函数调用中的应用:
 7 function set(...num){
 8     console.log(num) //[1, 2, 3]
 9 }
10 set(1,2,3)
11 
12 function set2(a,b,c){
13     console.log(a+b+c) //248
14     return a+b+c
15 }
16 
17 set2(...arr1)
18 
19 // 3.在对象中的应用:
20 let obj ={
21     a : 1
22 }
23 let obj1 = {
24     b: '2'
25 }
26 let obj2 = {...obj,...obj1}
27 console.log(obj2) //{a: 1, b: '2'}

扩展运算符(...)的工作原理其实可以简单理解为将一个可迭代对象(比如数组、字符串等)展开成用逗号分隔的值序列。具体来说,扩展运算符在不同情况下的工作原理如下:

1. 在数组中的工作原理:

当在数组中使用扩展运算符时,它会将数组中的每一项元素都提取出来,然后放置在一个新数组中。这个过程是浅拷贝的,即只复制了引用,而不是深层复制。

2. 在函数调用中的工作原理:

在函数调用中使用扩展运算符时,它会将一个数组或类数组对象转换成用逗号分隔的参数序列,从而便于传递给函数。

3. 在对象中的工作原理:

在对象中使用扩展运算符时,它会将对象中的每个可枚举属性提取出来,然后放置在一个新对象中。

总的来说,扩展运算符的工作原理就是将可迭代对象进行展开操作,方便地将其中的元素组合在一起,或者将其作为参数传递给函数。这样可以简化代码书写,提高代码的可读性和灵活性。

在函数中使用扩展运算符可以带来多种便利的场景,以下是其中一些常见的应用:

 1 // 1. 传递可变数量的参数
 2 function sum(...number){
 3 
 4     return number.reduce((a,b)=>{
 5         console.log(a,b)
 6        return a + b
 7     },0)
 8 }
 9 console.log(sum(1,1,3,4)) //9
10 console.log(sum(1,2,3,4,5)) //15
11 
12 // 2. 与普通参数结合使用
13 function fn(initial,...number){
14     return number.reduce((a,b)=>{
15         console.log(a,b)
16        return a + b
17     },initial)
18 }
19 
20 console.log(fn(10,1,3,4,5)) //23
21 
22 // 3. 与数组结合使用
23 let arr = [1,2,245,6]
24 let arr1 = [...arr,3,5,7]
25 function array(arr,arr1){
26 
27     return [...arr,...arr1]
28 
29 }
30 console.log(array(arr,arr1)) //[1, 2, 245, 6, 1, 2, 245, 6, 3, 5, 7]
31 
32 
33 // 4. 与其他函数返回值结合使用
34 
35 function getMinMax(...numbers) {
36   return [Math.min(...numbers), Math.max(...numbers)];
37 }
38 
39 console.log(getMinMax(3, 1, 4, 1, 5, 9, 2, 6)); // 输出 [1, 9]

 

posted on 2024-02-23 17:22  萬事順意  阅读(50)  评论(0编辑  收藏  举报