ES6 中的默认参数详解及使用示例

在 ES6 中,我们可以给函数的参数设置默认值,这样在调用函数时,如果没有传入该参数,函数就会使用默认值。这个特性在编写函数时非常有用,可以减少代码量,提高代码的可读性。本文将详细介绍 ES6 中的默认参数特性,并提供一些使用示例。

使用默认参数

使用默认参数非常简单,只需要在函数定义时,给参数设置默认值即可。例如:

在上面的例子中,greet 函数有一个参数 name,我们给它设置了默认值 'World'。当我们不传入任何参数调用 greet 函数时,它会使用默认值 'World';当我们传入参数 'Alice' 时,它会使用传入的值 'Alice'

默认参数的注意事项

使用默认参数需要注意以下几点:

1. 默认参数的值只在函数被调用时计算一次

例如:

在上面的例子中,add 函数有两个参数 ab,我们给 b 设置了默认值为 a。当我们调用 add(1, 2) 时,a 的值为 1b 的值为 2,函数返回 3;当我们调用 add(1) 时,a 的值为 1b 的值为 a,即 1,函数返回 2

需要注意的是,b 的默认值是在函数被调用时计算的,而不是在函数定义时。因此,如果我们修改 a 的值,b 的默认值也会随之改变:

在上面的例子中,我们定义了一个变量 x,并将其赋值为 1。然后定义了一个 add 函数,给 b 设置了默认值为 x。当我们调用 add(1) 时,a 的值为 1b 的值为 x,即 1,函数返回 2。然后我们将 x 的值改为 2,再次调用 add(1) 时,b 的默认值变成了 2,函数返回 3

2. 默认参数的值可以是任意表达式

例如:

在上面的例子中,我们定义了一个 now 函数,它返回当前时间的 ISO 字符串表示。然后定义了一个 log 函数,它有两个参数 messagetimestamp,我们给 timestamp 设置了默认值为调用 now 函数的结果。当我们调用 log('Hello, World!') 时,message 的值为 'Hello, World!'timestamp 的值为 now() 的结果,即当前时间的 ISO 字符串表示,函数打印出了日志。

使用默认参数的示例

下面是一些使用默认参数的示例:

1. 给数组添加默认值

在上面的例子中,我们定义了一个 createArray 函数,它有两个参数 lengthvalue,我们给它们设置了默认值。当我们不传入任何参数调用 createArray 函数时,它会返回一个空数组 [];当我们传入一个参数 3 调用 createArray 函数时,它会返回一个长度为 3 的数组,数组的元素都是 undefined;当我们传入两个参数 30 调用 createArray 函数时,它会返回一个长度为 3 的数组,数组的元素都是 0;当我们传入两个参数 3'x' 调用 createArray 函数时,它会返回一个长度为 3 的数组,数组的元素都是 'x'

2. 给对象添加默认值

在上面的例子中,我们定义了一个 createUser 函数,它有一个参数 user,我们给它设置了默认值 { name: 'Anonymous', age: 0, address: {} }。当我们不传入任何参数调用 createUser 函数时,它会使用默认值,返回一个对象 { name: 'Anonymous', age: 0, address: {} };当我们传入一个参数 { name: 'Alice', age: 20 } 调用 createUser 函数时,它会使用传入的值,返回一个对象 { name: 'Alice', age: 20, address: {} };当我们传入一个参数 { address: { city: 'Shanghai' } } 调用 createUser 函数时,它会使用传入的值,返回一个对象 { name: 'Anonymous', age: 0, address: { city: 'Shanghai' } }

总结

在本文中,我们介绍了 ES6 中的默认参数特性,并提供了一些使用示例。使用默认参数可以减少代码量,提高代码的可读性,但需要注意默认参数的值只在函数被调用时计算一次,以及默认参数的值可以是任意表达式。在编写函数时,我们可以根据需要为参数设置默认值,使代码更加简洁和易读。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65599e5fd2f5e1655d4092af


纠错
反馈