ECMAScript 2017(也称为 ES8)是 JavaScript 语言的一个重要更新版本,其中包含了许多新的语言特性和改进。其中,扩展操作符和剩余操作符是两个非常有用的新特性,可以帮助开发人员更加方便地处理数组和对象。
扩展操作符
扩展操作符(Spread Operator)可以将一个数组或对象“展开”成为另一个数组或对象,使得开发人员可以更加方便地进行数据合并和复制操作。
数组的扩展操作符
在数组中使用扩展操作符,可以将一个数组中的所有元素“展开”到另一个数组中。例如:
----- ---- - --- -- --- ----- ---- - --- -- --- ----- ---- - --------- --------- ------------------ -- --- -- -- -- -- --
在上面的代码中,使用扩展操作符将 arr1 和 arr2 数组中的所有元素“展开”到 arr3 数组中,从而得到一个包含所有元素的新数组。
除此之外,扩展操作符还可以用来在数组中插入元素:
----- ---- - --- -- --- ----- ---- - --- -------- -- --- ------------------ -- --- -- -- -- -- --
在上面的代码中,使用扩展操作符将 arr1 数组中的所有元素“展开”到 arr2 数组中,并在数组开头和结尾分别插入了 0 和 4、5 两个元素。
对象的扩展操作符
在对象中使用扩展操作符,可以将一个对象的所有属性“展开”到另一个对象中。例如:
----- ---- - - -- -- -- - -- ----- ---- - - -- -- -- - -- ----- ---- - - -------- ------- -- ------------------ -- - -- -- -- -- -- -- -- - -
在上面的代码中,使用扩展操作符将 obj1 和 obj2 对象中的所有属性“展开”到 obj3 对象中,从而得到一个包含所有属性的新对象。
除此之外,扩展操作符还可以用来添加或覆盖对象中的属性:
----- ---- - - -- -- -- - -- ----- ---- - - -------- -- -- -- - -- ------------------ -- - -- -- -- -- -- - -
在上面的代码中,使用扩展操作符将 obj1 对象中的所有属性“展开”到 obj2 对象中,并覆盖了原有的 b 属性,同时添加了一个新的 c 属性。
剩余操作符
剩余操作符(Rest Operator)可以将一个数组或对象的“剩余部分”赋值给一个新的变量,使得开发人员可以更加方便地获取数组或对象的部分值。
数组的剩余操作符
在数组中使用剩余操作符,可以将数组中的一部分元素赋值给一个新的变量。例如:
----- ---- - --- -- -- -- --- ----- --- -- -------- - ----- -------------- -- ------ -- -- -- --- -- --
在上面的代码中,使用剩余操作符将 arr1 数组中的前两个元素赋值给了变量 a 和 b,将剩余的元素赋值给了变量 rest。
除此之外,剩余操作符还可以用来忽略数组中的一部分元素:
----- ---- - --- -- -- -- --- ----- --- - - -- -- - ----- -------------- -- --- -- -- -- -
在上面的代码中,使用剩余操作符忽略了 arr1 数组中的第二个和第三个元素,并将剩余的元素赋值给了变量 d 和 e。
对象的剩余操作符
在对象中使用剩余操作符,可以将对象中的一部分属性赋值给一个新的对象。例如:
----- ---- - - -- -- -- -- -- -- -- -- -- - -- ----- - -- -- ------- - - ----- -------------- -- ------ -- -- -- - -- -- -- -- -- - -
在上面的代码中,使用剩余操作符将 obj1 对象中的 a 和 b 属性赋值给了变量 a 和 b,将剩余的属性赋值给了变量 rest。
除此之外,剩余操作符还可以用来重命名对象中的属性:
----- ---- - - -- -- -- - -- ----- - -- -- -- - - - ----- -------------- --- -- -- -
在上面的代码中,使用剩余操作符将 obj1 对象中的 a 属性重命名为变量 x,将 b 属性重命名为变量 y。
总结
扩展操作符和剩余操作符是 ECMAScript 2017 中非常有用的新特性,可以帮助开发人员更加方便地处理数组和对象。在实际的开发中,我们可以灵活地运用这些特性,提高代码的可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66012f5ad10417a222c5aad9