ECMAScript 2021 中的函数参数默认值详解

阅读时长 4 分钟读完

ECMAScript 2021 中的函数参数默认值详解

在 JavaScript 中,函数是非常重要的一部分。而在函数的使用过程中,经常涉及到参数的传递。在 ECMAScript 2021 中,新增了一些关于函数参数的默认值的语法,可以帮助开发者更加方便的使用函数。

  1. 基本语法

在 ES6 中,我们已经可以为函数的参数设置默认值。比如:

这里,我们为参数 b 设置了默认值 1。如果 add 函数被调用时只传入了第一个参数 a,那么 b 将会被默认赋值为 1。

在 ES2021 中,我们可以使用更加简洁的语法:

这里只有 b 参数设置了默认值,而 a 和 c 参数没有设置默认值。如果我们调用这个函数:

那么 b 将被赋值为默认值 1,函数返回值为 7。

  1. 可选参数

在 ES6 中,使用默认值设置可选参数。比如:

这里我们为形参 name 赋予默认值为 'World'。如果我们调用了:

那么控制台输出 Hello World!。如果我们调用了:

那么控制台输出 Hello Alice!

而在 ES2021 中,我们可以更好的实现可选参数。比如:

这里我们使用了可选链语法 (? 表示 name 是可选的) 和 nullish coalescing 运算符 (?? 表示如果 name 不存在或者是 null 或 undefined,就返回 'World')。如果我们调用了:

通常情况下,可选链 (? 表示调用链中的属性或方法是可选的) 和 nullish coalescing 运算符 (?? 表示如果当前值为 null 或 undefined,返回默认值) 将会结合使用来实现更加强大的功能。

  1. 其他注意事项

在函数定义时如果给一个参数指定了默认值,那么该参数后面的所有参数都必须指定默认值。

比如下面的代码是不符合规范的:

这里 a 参数已经指定了默认值,而 b 参数没有指定默认值。这样会导致函数在调用时无法确定参数的值。

在使用函数的默认参数时,我们需要注意以下几点:

  • 默认参数可以是任何表达式,如果是函数调用的结果,那么每次调用函数时都会重新计算该表达式;
  • 默认参数的作用域遵循普通的变量作用域规则,即在函数内部的参数自成一体,不会影响函数外部的同名变量;
  • 默认参数只对 undefined 有作用,对 null, '', 0 等值不起作用。
  1. 总结

ECMAScript 2021 中的函数参数默认值语法让函数的使用更加方便和灵活。我们可以通过设置默认值、可选参数等方式,更加自由地控制函数的行为。对函数参数默认值的深入了解,对于我们在开发过程中更好地运用函数起到了很大的指导意义。

示例代码:

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

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

纠错
反馈