ES9:rest/spread 属性。

ECMAScript 2018 (ES9) 引入了新的 rest/spread 属性,这两个属性实现了更加方便和功能强大的数组和对象操作。本文将深入解析这两个属性,并提供示例代码和使用指导。

Rest 属性

Rest 属性可以将参数打包成一个数组,然后传递给函数。

在 ES6 中,我们可以这样写:

这里的 rest 就是 Rest 属性,它被放置在函数参数的最后一个位置,它前面的参数都会被正常赋值,而剩下的参数会被打包成一个数组,赋值给 rest。

在 ES9 中,Rest 属性同样支持在对象和数组中使用。

对象中使用 Rest 属性

在对象中使用 Rest 属性,可以将对象中的一部分属性打包成一个新的对象。

示例代码:

在上面的代码中,我们使用了对象解构的方法,将 obj 中的 a 和 b 属性分别解构出来并赋值给 a 和 b 变量,然后使用 Rest 属性将剩余的属性打包成一个新的对象 rest。我们可以看到,rest 对象中包含了 c 和 d 两个属性。

数组中使用 Rest 属性

与对象类似,数组中也可以使用 Rest 属性。

示例代码:

在上面的代码中,我们使用了数组解构的方法,将数组中的前两个元素分别解构出来并赋值给 a 和 b 变量,然后使用 Rest 属性将剩余的元素打包成一个新的数组 rest。我们可以看到,rest 数组中包含了后面的三个元素。

Spread 属性

Spread 属性可以将数组或对象展开成一个新的数组或对象,非常方便快捷。

数组中使用 Spread 属性

在数组中使用 Spread 属性,可以将一个数组展开成另一个数组。

示例代码:

在上面的代码中,我们创建了两个数组 arr1 和 arr2,然后使用 Spread 属性将它们展开成一个新的数组 arr3。arr3 中包含了 arr1 和 arr2 中所有的元素。

对象中使用 Spread 属性

在对象中使用 Spread 属性,可以将一个对象展开成另一个对象。

示例代码:

在上面的代码中,我们创建了一个 person 对象,包含了 name 和 age 两个属性,在使用 Spread 属性时,我们在对象中添加了一个 address 属性,并将 person 对象展开成一个新的对象 info。info 包含了 person 的所有属性,以及一个新的 address 属性。

总结

Rest 和 Spread 属性是 ECMAScript 2018 中引入的重要特性,它们可以让我们更加方便和快捷地操作数组和对象。使用 Rest 属性可以将参数、对象和数组中的一部分属性打包成一个新的数组或对象,而使用 Spread 属性则可以将数组或对象展开成一个新的数组或对象。在实际工作中,我们可以灵活地使用这两个属性,提高我们的开发效率。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654f4ec77d4982a6eb843929


纠错
反馈