Advertisement

JS中【扩展运算符】相关知识点

阅读量:

JavaScript 中的扩展运算符(Spread Operator)是由三个点 ... 组成的。它是一种用于展开可迭代对象(如数组、字符串)或对象本身的强大工具。扩展运算符可以简化数组和对象的操作,如拷贝、合并、函数调用等。以下是扩展运算符的详细知识点讲解。

1. 数组中的扩展运算符

1.1 展开数组

扩展运算符可以将数组(或类数组)中的元素展开为独立的值。这在构建新数组时特别有用。利用这一点可以快将类数组转换成数组。

复制代码
    const arr1 = [1, 2, 3];
    const arr2 = [...arr1, 4, 5, 6];
    console.log(arr2); // [1, 2, 3, 4, 5, 6]
    
    
    javascript
    
    
1.2 数组合并

扩展运算符可以用于合并多个数组,非常简洁易用。

复制代码
    const arr1 = [1, 2, 3];
    const arr2 = [4, 5, 6];
    const mergedArray = [...arr1, ...arr2];
    console.log(mergedArray); // [1, 2, 3, 4, 5, 6]
    
    
    javascript
    
    
1.3 数组拷贝

使用扩展运算符可以创建数组的浅拷贝。拷贝后的数组与原数组是独立的修改互不影响。

复制代码
    const original = [1, 2, 3];
    const copy = [...original];
    copy.push(4);
    console.log(original); // [1, 2, 3]
    console.log(copy);     // [1, 2, 3, 4]
    
    
    javascript
    
    
1.4 函数调用中的扩展运算符

扩展运算符可以将数组元素作为独立的参数传递给函数。

复制代码
    function sum(a, b, c) {
      return a + b + c;
    }
    const numbers = [1, 2, 3];
    console.log(sum(...numbers)); // 6
    
    
    javascript
    
    

2. 对象中的扩展运算符

2.1 展开对象

扩展运算符可以将对象的所有属性展开为独立的键值对。这在构建新对象时非常有用。

复制代码
    const obj1 = { a: 1, b: 2 };
    const obj2 = { ...obj1, c: 3 };
    console.log(obj2); // { a: 1, b: 2, c: 3 }
    
    
    javascript
    
    
2.2 对象合并

扩展运算符可以合并多个对象。若有相同的属性名,后面的对象会覆盖前面的。

复制代码
    const obj1 = { a: 1, b: 2 };
    const obj2 = { b: 3, c: 4 };
    const mergedObj = { ...obj1, ...obj2 };
    console.log(mergedObj); // { a: 1, b: 3, c: 4 }
    
    
    javascript
    
    
2.3 对象拷贝

扩展运算符也可以用来浅拷贝对象,创建一个与原对象内容相同但不同引用的新对象。

复制代码
    const original = { a: 1, b: 2 };
    const copy = { ...original };
    copy.c = 3;
    console.log(original); // { a: 1, b: 2 }
    console.log(copy);     // { a: 1, b: 2, c: 3 }
    
    
    javascript
    
    

3. 字符串中的扩展运算符

3.1 展开字符串

扩展运算符可以将字符串展开为单个字符组成的数组。

复制代码
    const str = "hello";
    const chars = [...str];
    console.log(chars); // ['h', 'e', 'l', 'l', 'o']
    
    
    javascript
    
    

4. 扩展运算符与剩余参数的区别

虽然扩展运算符 ... 和剩余参数(Rest Parameters)使用相同的语法,但它们的作用是不同的。扩展运算符用于展开一个可迭代对象,而剩余参数用于将多个参数收集到一个数组中。

扩展运算符示例:

复制代码
    const arr = [1, 2, 3];
    const arrCopy = [...arr];
    console.log(arrCopy); // [1, 2, 3]
    
    
    javascript
    
    

剩余参数示例:

复制代码
    function sum(...numbers) {
      return numbers.reduce((acc, num) => acc + num, 0);
    }
    console.log(sum(1, 2, 3)); // 6
    
    
    javascript
    
    

总结

扩展运算符是 JavaScript 中的一个非常灵活和强大的工具,它可以简化数组、对象的操作,并且在函数调用和字符串处理等场景中也很有用。掌握扩展运算符可以让你的代码更加简洁和高效。

全部评论 (0)

还没有任何评论哟~