ES6 中如何使用参数默认值

在 ES6 之前,我们在定义函数时经常需要手动检查参数是否存在,如果不存在则使用默认值。而在 ES6 中,JavaScript 引入了参数默认值的特性,可以更加方便地定义函数,并且可以避免一些常见的错误。

使用默认值

在 ES6 中,我们可以为函数的参数指定默认值。例如,下面的代码定义了一个函数 printMessage,它有两个参数,messagelevel,其中 level 参数有一个默认值为 1

在上面的例子中,我们调用了 printMessage 函数两次,第一次只传入了 message 参数,第二次传入了 messagelevel 两个参数。由于 level 参数有一个默认值,所以在第一次调用时,它的值为 1

默认值的优先级

当函数同时指定了默认值和传入了实参时,实参的值会覆盖默认值。例如,下面的代码定义了一个函数 multiply,它有两个参数,xy,其中 y 参数有一个默认值为 1

在上面的例子中,我们调用了 multiply 函数两次,第一次只传入了 x 参数,第二次传入了 xy 两个参数。由于 y 参数有一个默认值,所以在第一次调用时,它的值为 1,而在第二次调用时,它的值被覆盖为 3

默认值的作用域

默认值的作用域与函数体的作用域相同。例如,下面的代码定义了一个函数 increment,它有两个参数,xy,其中 y 参数有一个默认值为 x

在上面的例子中,我们调用了 increment 函数两次,第一次只传入了 x 参数,第二次传入了 xy 两个参数。由于 y 参数的默认值是 x,所以在第一次调用时,它的值与 x 相同,都是 1,而在第二次调用时,它的值被覆盖为 2

注意事项

在使用默认值时,需要注意以下几点:

  • 默认值只会在函数执行时计算一次。如果默认值是一个对象或数组,那么每次调用函数时都会使用同一个对象或数组。
  • 默认值的值可以是任何表达式,包括函数调用、变量引用等。
  • 默认值的值可以是前面参数的引用,例如,下面的代码定义了一个函数 f,它有三个参数,xyz,其中 z 参数的默认值是 x + y

总结

ES6 中的参数默认值特性可以方便地定义函数,并且可以避免一些常见的错误。在使用默认值时,需要注意默认值的优先级、作用域以及注意事项,以充分发挥其优势。

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


纠错
反馈