ES9 中的 Rest 参数

阅读时长 4 分钟读完

在 JavaScript 的新标准 ECMAScript 2018(ES9)中,引入了 Rest 参数的新特性。Rest 参数主要用于函数的参数列表中,用来表示一个不定数量的参数,将其转换为一个数组。

Rest 参数的基本语法

在函数的参数列表中使用三个点(...)来表示 Rest 参数,例如:

-- -------------------- ---- -------
-------- --------------- -
  --- ------ - --
  ------- - - -- - - --------------- ---- -
    ------ -- -----------
  -
  ------ -------
-

------------------ -- -- -- ---- -- -- --

上面的代码中,sum 函数的参数列表中使用了 Rest 参数 ...numbers,将传入函数的所有参数转换为一个数组。

Rest 参数和 arguments 对象的区别

在以前的 JavaScript 版本中,我们可以使用 arguments 对象来表示一个不定数量的参数。arguments 对象是一个类数组对象,可以通过下标访问其中的参数。但是,arguments 对象并不是一个真正的数组,缺少一些数组的方法和属性,例如 forEachmapreduce 等。

使用 Rest 参数可以解决 arguments 对象的一些问题,例如:

  • Rest 参数是一个真正的数组,具有数组的所有方法和属性。
  • Rest 参数可以与其他参数一起使用,而 arguments 对象只能单独使用。

下面的代码演示了 Rest 参数和 arguments 对象的区别:

-- -------------------- ---- -------
-------- --------------- -- ------------ -
  --------------- -- -- -
  --------------- -- -- -
  ---------------------- -- -- --- -- --
-

-------- ---------------- -- -
  --------------- -- -- -
  --------------- -- -- -
  -------------------------- -- -- -
  -------------------------- -- -- -
  -------------------------- -- -- -
-

--------------- -- -- -- ---
---------------- -- -- -- ---

Rest 参数的应用场景

Rest 参数可以用在多种场景下,例如:

1. 函数的参数不确定

当函数的参数个数不确定时,可以使用 Rest 参数来获取所有传入的参数,并将其转换为一个数组。

2. 参数解构

Rest 参数可以与解构赋值结合使用,用来获取对象或数组中的剩余元素。

3. 函数参数的默认值

Rest 参数可以与默认值结合使用,用来设置函数参数的默认值。

-- -------------------- ---- -------
-------- ------ - - -- -------- -
  --- ------ - - - --
  ------- - - -- - - ------------ ---- -
    ------ -- --------
  -
  ------ -------
-

-------------------- -- -- -
------------------ ---- -- -- -
------------------ -- -- -- ---- -- -- --

总结

Rest 参数是 ECMAScript 2018 中的一个新特性,用来表示函数的不定数量参数,并将其转换为一个数组。它可以替代以前使用的 arguments 对象,并且可以与解构赋值和默认值结合使用,具有广泛的应用场景。在编写 JavaScript 函数时,可以考虑使用 Rest 参数来提高代码的可读性和可维护性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/657bc5bed2f5e1655d66f14a

纠错
反馈