在 ECMAScript 2018 (即 ES9) 中,有一项非常有用的特性是扩展 Array 语法,它允许我们使用三个点 (...
) 来表示将一个数组展开为逗号分隔值的列表。除此之外,这个特性还支持无限数量参数,在本文中,我们将会深入了解这个特性。
扩展 Array 语法
在 ES6 中,我们可以使用扩展 Array 语法来初始化一个数组。比如:
--- --- - --- -- --- --- ---- - -------- -- -- --- ------------------ -- --- -- -- -- -- --
在上面的代码中,我们使用了扩展 Array 语法将 arr
展开成了 1, 2, 3
,然后加上了 4, 5, 6
的值,最后组成了一个新的数组 arr2
。
扩展 Array 语法支持无限数量参数
在 ES9 中,扩展 Array 语法得到了进一步增强,它可以支持无限数量参数,让我们看看下面的代码:
-------- ------------ - --- ----- - -- --- ---- - -- ----- - ----- -- -- - ------ ------ - ------------------ -- -- -- ---- -- -- ------------------- ----- -- -- ------------------- -- -
在上面的代码中,我们定义了一个 sum
函数,使用三个点 (...
) 将参数列表展开成了一个数组 nums
。这样,即使我们向 sum
函数传递了无限数量的参数,它也能够正常工作。
深入理解无限数量参数的本质
无限数量参数在 ES9 中的实现其实是借助了 JavaScript 中另一个非常有用的特性。我们先回忆一下我们在 ES6 中如何实现可变参数函数:
-------- ------------ - --- ----- - -- --- ---- - -- ----- - ----- -- -- - ------ ------ -
这个函数可以接受任何数量的参数,并将它们求和。但这个语法是如何工作的呢?
事实上,...nums
这个语法是将传入的参数转化成了一个数组,然后我们可以在函数体内直接使用这个数组。这个特性称为“剩余参数”。
那么回到无限数量参数,我们再看一下上面的例子:
-------- ------------ - --- ----- - -- --- ---- - -- ----- - ----- -- -- - ------ ------ -
我们传递的参数不是一个数组,而是一系列的值。事实上,这些值会被自动转化成一个数组。这个语法称为“展开语法”。
由于展开语法和剩余参数都是使用三个点 (...
) 来表示,因此我们可以说,无限数量参数本质上就是使用了剩余参数和展开语法的结合。
结论
在本文中,我们探讨了 ES9 中的扩展 Array 语法如何支持无限数量参数,以及它的本质是如何实现的。这个特性可以让我们更加方便地编写可变参数函数,并且能够提高我们的代码的可读性和清晰度。希望本文对你有所帮助!
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/672ae03bddd3a70eb6d10b4d