在 ES6 中,我们可以使用默认参数和 Rest 参数来更好地处理函数的参数。本文将详细介绍这两种参数的用法和注意事项,并提供示例代码。
默认参数
默认参数是指在函数定义时为参数提供默认值。如果调用函数时没有传递该参数,则使用默认值。
-------- ---------- - -------- - ------------------- ----------- - -------- -- --------- ------ --------------- -- --------- ------
在上面的示例中,我们定义了一个 greet
函数,它有一个参数 name
。我们在定义函数时为 name
参数提供了默认值 'world'
。如果调用函数时没有传递 name
参数,则使用默认值。如果传递了 name
参数,则使用传递的值。
需要注意的是,默认参数的值只有在函数被调用时才会计算。这意味着如果默认参数是一个对象或数组,它们将在每次调用函数时重新创建。
-------- ---------------- ----------- - --- - -- --- - ----- ----- - -------------------- ----- ----- - ------------------ ------------------------------- ------------------------------- -- -----
在上面的示例中,我们定义了一个 createUser
函数,它有两个参数 name
和 permissions
。我们为 permissions
参数提供了默认值 []
。在创建用户时,我们只传递了 name
参数,因此默认使用空数组作为 permissions
参数的值。然后我们向 user1
的 permissions
数组中添加了一个元素 'read'
。当我们输出 user2
的 permissions
数组时,它是空的,因为 permissions
参数的默认值是一个新的空数组。
Rest 参数
Rest 参数是指在函数定义时使用 ...
语法来捕获多个参数,并将它们存储在一个数组中。
-------- --------------- - ------ ---------------------- ------- -- ----- - ------- --- - ------------------ -- ---- -- ---- ------------------ ---- -- ----
在上面的示例中,我们定义了一个 sum
函数,它使用 Rest 参数 ...numbers
来捕获多个参数,并将它们存储在一个数组中。然后我们使用 reduce
方法对数组中的元素求和并返回结果。
需要注意的是,Rest 参数必须是最后一个参数。否则,将会抛出语法错误。
-------- --------------- --------- ------------ - -- ------ - -------- --------------- --------- - ----- ----------- - ---- -- --- -
在上面的示例中,第一个 greet
函数的 Rest 参数 ...names
不在最后一个参数的位置,因此会抛出语法错误。第二个 greet
函数将 Rest 参数放在了最后一个参数的位置,因此不会抛出语法错误。
总结
通过使用默认参数和 Rest 参数,我们可以更好地处理函数的参数。在使用默认参数时,需要注意默认值只会在函数被调用时计算。在使用 Rest 参数时,需要将它放在最后一个参数的位置,否则会抛出语法错误。希望本文对您有所帮助,感谢您的阅读!
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65d6e3301886fbafa447d27c