ES9 的函数参数之 defaults

阅读时长 4 分钟读完

在 JavaScript 中,函数是非常常用的工具。在 ES6 之前,定义函数时常常需要手动检查参数是否存在,否则会导致程序出错。ES6 引入了默认参数,使定义函数时变得更加简单。在 ES9 中,又新增了一个函数参数特性:defaults。

什么是 defaults?

defaults 是 ES9 中新增的函数参数语法特性,用于提供更加方便的默认参数处理方式。通过使用 defaults,可以简单地定义默认值,而不需要使用复杂的逻辑代码来检查函数的参数。

怎么使用 defaults?

defaults 能够在定义函数时使用,也能够在已有函数中的参数列表上添加。

在函数定义时使用 defaults

在函数定义时,你可以使用 defaults 来指定一个参数的默认值:

在这个示例中,我们定义了一个名为 printMessage() 的函数,它具有一个名为 message 的默认参数,它的默认值为 "Hello, world!"

在已有函数中使用 defaults

除了在定义函数时使用 defaults,你还可以在已有函数中的参数列表上使用该特性:

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

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

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

这个示例中我们定义了一个名为 showMessage() 的函数,它可以接受一个名为 options 的参数,默认为空对象。函数通过解构 options 对象来获取它的值,并使用默认值来填充没有指定的值。

defaults 的指导意义

defaults 的使用可以极大地提高你的代码可读性和代码风格的一致性。它可以减少需要使用复杂代码检查默认参数的数量。

默认参数可以让你在定义函数时,直接给出参数的默认值,而不必去考虑参数是否缺失的问题。如果该参数被省略,那么函数就会使用默认的值。

当您处理用户输入,或形成配置对象时,使用 defaults 可以让你避免在所有情况下重新定义相似的配合项。

总结

defaults 是 ES9 中新增的函数参数语法特性,可以在定义函数时指定默认参数值。使用 defaults 可以减少检查参数恰当性的代码量,有效提高代码可读性和可维护性,是一项非常实用的工具。

示例代码:https://codepen.io/pen/?template=PomYeRy

文本版代码:

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

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

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

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

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

参考文献:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters#specifying_a_default_in_the_function_body

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

纠错
反馈