解析 ES6 中的默认参数和 Rest 参数的用法和注意事项

在 ES6 中,我们可以使用默认参数和 Rest 参数来更好地处理函数的参数。本文将详细介绍这两种参数的用法和注意事项,并提供示例代码。

默认参数

默认参数是指在函数定义时为参数提供默认值。如果调用函数时没有传递该参数,则使用默认值。

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

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

在上面的示例中,我们定义了一个 greet 函数,它有一个参数 name。我们在定义函数时为 name 参数提供了默认值 'world'。如果调用函数时没有传递 name 参数,则使用默认值。如果传递了 name 参数,则使用传递的值。

需要注意的是,默认参数的值只有在函数被调用时才会计算。这意味着如果默认参数是一个对象或数组,它们将在每次调用函数时重新创建。

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

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

在上面的示例中,我们定义了一个 createUser 函数,它有两个参数 namepermissions。我们为 permissions 参数提供了默认值 []。在创建用户时,我们只传递了 name 参数,因此默认使用空数组作为 permissions 参数的值。然后我们向 user1permissions 数组中添加了一个元素 'read'。当我们输出 user2permissions 数组时,它是空的,因为 permissions 参数的默认值是一个新的空数组。

Rest 参数

Rest 参数是指在函数定义时使用 ... 语法来捕获多个参数,并将它们存储在一个数组中。

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

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

在上面的示例中,我们定义了一个 sum 函数,它使用 Rest 参数 ...numbers 来捕获多个参数,并将它们存储在一个数组中。然后我们使用 reduce 方法对数组中的元素求和并返回结果。

需要注意的是,Rest 参数必须是最后一个参数。否则,将会抛出语法错误。

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

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

在上面的示例中,第一个 greet 函数的 Rest 参数 ...names 不在最后一个参数的位置,因此会抛出语法错误。第二个 greet 函数将 Rest 参数放在了最后一个参数的位置,因此不会抛出语法错误。

总结

通过使用默认参数和 Rest 参数,我们可以更好地处理函数的参数。在使用默认参数时,需要注意默认值只会在函数被调用时计算。在使用 Rest 参数时,需要将它放在最后一个参数的位置,否则会抛出语法错误。希望本文对您有所帮助,感谢您的阅读!

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