在 ES6 中,函数参数默认值的使用给我们带来了很多便利,可以让我们写出更简洁、易读的代码。下面我们就来探讨一下 ES6 中函数参数默认值的使用技巧。
1. 基本使用
在 ES6 中,我们可以通过在函数参数中使用 =
赋值符号来指定默认值。例如,下面的代码定义了一个名为 showMessage
的函数,它有两个参数:message
和 severity
。如果调用该函数时只传入了 message
参数,那么 severity
参数的默认值将会是 'info'
。
function showMessage(message, severity='info') { console.log(`${severity}: ${message}`); } showMessage('Hello World'); // 输出:'info: Hello World' showMessage('Error occurred', 'error'); // 输出:'error: Error occurred'
2. 参考前面参数的默认值
在函数参数列表中,我们可以使用前面已经定义过的参数的默认值。例如下面这个例子:
function showMessage(message, severity='info', messageCount=`${message.length} characters long`) { console.log(`${severity}: ${message}, message length: ${messageCount}`); } showMessage('Hello World'); // 输出:'info: Hello World, message length: 11 characters long'
和之前的例子不同的是,这个函数的第三个参数(messageCount
)使用了 message.length
的默认值。
3. 惰性求值
函数参数的默认值是惰性求值的。这就意味着,如果默认值是一个表达式,那么只有在该参数没有被传入时才会被求值。例如:
-- -------------------- ---- ------- -------- ----------------- - ---------------------------- ------- ------ --- - -------- ------ -------------------- - ------ - - -- - ------------------ ---- -- ---- -------------------- -- -----
在这个例子中,getDefaultValue
函数只在第二次调用 add
函数时被调用。因为第一次调用传入了两个参数,所以 y
的默认值不会被使用。
4. 使用 undefined 作为默认值
函数参数的默认值可以是 undefined,这和没有指定默认值是等价的。例如:
-- -------------------- ---- ------- -------- -------------------- ------------------- - -- --------- --- ---------- - --------------- -------- ---------- ------------- - ---- - ------------------------- ------------- - - ------------------ -------- -- ------ -------- ---------- ----- ------ ------------------ ---------- --------- -- ---------- ----- ---------
总结
ES6 中的函数参数默认值可以让我们写出更简洁、易读的代码。在使用函数参数默认值时需要注意,参数默认值的求值是惰性的,可以使用之前定义的参数的默认值,也可以使用 undefined 作为默认值。
希望这篇文章对于学习 ES6 函数参数默认值有所帮助。如果你有什么疑问或建议,请在评论区留言。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64d489deb5eee0b525c15c87