ES6 中增加了默认函数参数的功能,让我们在编写函数时可以更加方便和灵活。本文将介绍 ES6 中默认函数参数的基本用法和特殊用法,并提供一些实用的示例代码。
基本用法
在 ES6 中,我们可以为函数的参数设置默认值。如果函数调用时没有传递参数,那么将会使用默认值。例如:
-------- ---------- - -------- - ------------------- ----------- - -------- -- --------- ------ --------------- -- --------- ------
在上面的例子中,greet
函数的参数 name
设置了默认值 'World'
。如果调用 greet
函数时没有传递参数,那么将会使用默认值 'World'
;如果传递了参数,将会使用传递的参数值。
需要注意的是,设置默认值的参数必须放在其他参数的后面。例如,下面的代码是错误的:
-------- ---------- - -------- ------ - ------------------- -------- ----------- - -------------- ------- -- ------------------ ------ ------ ------- ------ --------------
在上面的例子中,greet
函数的参数 title
没有设置默认值,但是在调用函数时却传递了 title
参数。由于 name
参数设置了默认值,因此 title
参数必须放在 name
参数的后面。
特殊用法
除了基本用法以外,ES6 中的默认函数参数还有一些特殊的用法,可以让我们更加灵活地使用默认值。
默认值可以是函数
在 ES6 中,设置默认值的参数可以是一个函数。当函数调用时,这个函数将会被执行,并且其返回值将会作为默认值使用。例如:
-------- ---------------- - ------------------------------ ------ -------- - -------- ---------- - ----------------- - ------------------- ----------- - -------- -- ----------------- ------ ------ --------------- -- --------- ------
在上面的例子中,getDefaultName
函数返回默认的名称 'World'
,并且在调用 greet
函数时作为默认值使用。由于 getDefaultName
函数是一个普通的函数,因此可以执行一些复杂的操作,例如从服务器获取默认值。
需要注意的是,当函数调用时,函数参数的默认值将会被计算。因此,如果默认值是一个函数,那么这个函数将会被执行。如果默认值是一个对象或者数组,那么这个对象或者数组将会被共享。例如:
-------- ----------------- - ------------------------------- ------ --- - -------- -------------- ----- - ------------------ - ------------------ ------------------- - ----------- -- ------------------ - - - ----------- -- ---- -- - -
在上面的例子中,getDefaultArray
函数返回一个空数组,并且在调用 addItem
函数时作为默认值使用。由于 getDefaultArray
函数是一个普通的函数,因此在调用 addItem
函数时会被执行。由于默认值是一个数组,因此这个数组将会被共享,而不是每次调用函数都创建一个新的数组。
默认值可以引用前面的参数
在 ES6 中,设置默认值的参数可以引用前面的参数。例如:
-------- ------------ ---- - -------- - ------------------- -------- ----------- - ------------- -- --------- --- ------ ------------ --------- -- --------- --- ------
在上面的例子中,greet
函数的第一个参数 title
没有设置默认值,而第二个参数 name
设置了默认值 'World'
。由于 name
参数引用了前面的参数 title
,因此在调用 greet
函数时可以省略第二个参数,例如 greet('Ms.')
。
需要注意的是,当函数调用时,前面的参数必须已经定义。如果前面的参数没有定义,那么将会报错。例如:
-------- ---------- - ------ ------ - ------------------- -------- ----------- - ---------------- ------- -- ------------------ ------ ------ ------- ------ --------------
在上面的例子中,greet
函数的第一个参数 name
引用了前面的参数 title
,但是 title
参数还没有定义,因此将会报错。
总结
ES6 中的默认函数参数为函数编写提供了更加方便和灵活的方式。除了基本用法以外,我们还可以使用默认值是函数和默认值引用前面的参数等特殊用法,来满足更加复杂的需求。在使用默认函数参数时,需要注意参数的顺序和默认值的计算方式,以避免出现错误。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65bc7a92add4f0e0ff51c352