如何使用 ECMAScript 2016 的 “可选参数”?

阅读时长 3 分钟读完

ECMAScript 2016(ES7)是 JavaScript 的一个较新的标准,它为开发者提供了许多新的特性。其中之一就是“可选参数”,它允许函数在被调用时传入可选的参数。本篇文章将详细介绍“可选参数”的用法,并给出实例。

可选参数的定义

在 JavaScript 中,函数可以定义一个或多个参数。但是,如果调用该函数时不传入所有参数,函数将无法正常工作。这时就需要使用一些默认值来取代缺失的参数,才能使函数正确执行。

ES6 引入了默认参数,这是一个函数定义时就确定的参数,即使调用函数时没有传递任何参数,该参数也有一个默认值。而 ES7 的可选参数则更加灵活,它在调用函数时可以传入或者不传入,缺省时将有一个默认值。

可选参数的语法

可选参数的语法非常简单,只需要在参数名称后加上一个问号即可:

这样,函数就会接受一个可选参数,这个参数可以省略或者给定默认值。

可选参数的应用

我们来看一个具体的例子。假设我们有一个函数可以计算两个数的和:

这个函数可以按照如下方式调用:

但是如果我们只传入一个参数,函数会返回 NaN:

为了解决这个问题,我们可以对代码进行修改,添加默认参数即可:

这样,如果我们传入一个参数,函数会使用默认值 0 来替代缺失的参数。我们现在再次调用这个函数:

这时,函数返回了预期的结果。

我们也可以使用可选参数来完善这个函数。例如,我们希望这个函数支持传入一个可选的第三个参数,表示是否做减法运算。如果第三个参数为真,那么函数将返回两个参数的差,否则返回它们的和。我们可以按照如下方式定义函数:

这个函数按照如下方式调用:

但是,该函数将不支持当第一个参数为零时,程序的正确运行将受到影响,因为零被视为 false,导致第三个参数被错误地省略了。为了避免这种情况,我们可以将第三个参数改为可选参数,并设置默认值为 false,使第三个参数在不传递时等于 false:

这个函数现在可以这样调用:

总结

ECMAScript 2016 的可选参数使得函数的参数更加灵活,让开发者可以定制化他们的函数参数。本文示范了如何使用可选参数来构建更加健壮的函数,以及在不传递某些参数时使用默认值。掌握可选参数的应用,将有助于您编写更加高效的 JavaScript 代码。

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

纠错
反馈