在 JavaScript 中,我们经常需要定义一个函数并且给它传递一些参数。有时候,这些参数可能会被调用方忽略或者没有赋值。在这种情况下,我们可以使用参数默认值来避免出现错误。
参数默认值的语法
在 JavaScript 中,我们可以使用简单的语法来为函数参数设置默认值。例如:
-------- ----- - --- - - --- - -------------- --- -
在这个例子中,如果调用 foo()
时没有传递任何参数,则参数 a
和 b
将分别默认为 10
和 20
。
参数默认值的作用
避免出现 undefined
当调用一个函数时,我们可能会忘记给其中某些参数传递值,或者传递了一个 undefined
值。如果我们在函数内部尝试引用这些未定义的变量,则程序就会出现错误。通过设定默认值,我们可以避免这种情况的发生。
例如:
-------- ---------- - -------- - ------------------- ----------- - -------- -- -- ------- ------- ------------- -- -- ------- -----
允许参数为空
有时候,我们希望传递一个空参数,例如一个空字符串或者一个空数组。在没有参数默认值的情况下,我们需要在函数内部手动检查是否有参数传递进来,然后使用条件语句进行处理。但是,如果我们使用参数默认值,则代码会变得更加简洁。
例如:
-------- ---------------- - --- - -- ------- - --------------- -- ------- ---------------- -- ---- -- ----------
参数默认值的注意事项
默认值是惰性计算的
默认值是在调用函数时被计算的,而不是在定义函数时。这意味着默认值可以是一个函数调用或者一个表达式。
例如:
-------- ----------------- - ------------------------ ------- ----------- ------ --- - -------- ----- - ------------------ - --------------- - ------ -- -- ------------ ------- --------- - ---- -------- -- -- ----
默认值是静态作用域的
如果一个默认值是一个变量或者函数,它将在函数定义所处的作用域中被解析,而不是在函数被调用时的作用域中。这与函数参数的行为类似。
例如:
--- - - --- -------- ----- - -- - --------------- - ------ -- -- ---- - - --- ------ -- -- ----------------------
总结
参数默认值是一个非常有用的特性,可以让我们编写更加健壮和简洁的代码。在使用参数默认值时,请注意它们的惰性计算和静态作用域的特点,以及它们可以避免出现 undefined 值和允许传递空参数的好处。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/1930