在 ES6 中,JavaScript 引入了展开操作符 spread operator
,为数组和对象提供了一种简单而灵活的复制和合并方式。而在 ES9,展开操作符不仅得到了进一步的优化,还引入了一种新的操作符:Rest operator
,这两个操作符能够在许多场景中提升代码的可读性和可维护性。
展开操作符 Spread Operator
展开操作符 ...
可以将数组或者对象拆分成独立的元素,或者将独立的元素组合成一个数组。下面分别通过数组和对象来介绍它的使用。
数组展开操作符
在以前,我们复制一个数组需要按照以下方式:
const numbers = [1, 2, 3]; const copyNumbers = []; numbers.forEach(num => { copyNumbers.push(num); });
利用展开操作符,可以大大简化以上代码:
const numbers = [1, 2, 3]; const copyNumbers = [...numbers];
也可以通过展开操作符将两个或多个数组合并成新的数组:
const arr1 = [1, 2, 3]; const arr2 = [4, 5, 6]; const arrRes = [...arr1, ...arr2]; // [1, 2, 3, 4, 5, 6]
对象展开操作符
通过展开操作符,也可以为对象批量添加属性和方法:
-- -------------------- ---- ------- ----- ------ - - ----- ------ ---- --- -- ----- --------- - - ---------- ------ ------------ ---------- - ------------------- -- ---- -- ---------------- -- --
剩余操作符 Rest Operator
剩余操作符 ...
可以把多个参数合并成一个数组。
例如,我们可以通过 Rest operator
将函数参数合并为一个数组:
function getSum(...nums) { return nums.reduce((prev, curr) => prev + curr, 0); } getSum(1, 2, 3, 4); // 10
注意:剩余操作符只能在函数的参数列表中使用,不能独立于其它上下文中使用。例如不能这样使用:
const numbers = [1, 2, 3, ...]; //会报错
剩余操作符也可以与展开操作符结合使用,来更好地管理多个参数和数组项。
总结和指导
在ES9中引入的 Rest operator
和展开操作符 spread operator
,为 JavaScript 提供了更多灵活的复制和合并数组、对象、函数参数的能力。这种语法能够让我们的程序更简洁且代码更易于阅读。建议大家在日常开发中多加使用,能够提升代码的可读性和可维护性,进一步提高我们的开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649e36bf48841e9894abde99