gpt4 book ai didi

javascript - 在函数中传入 undefined 作为参数 (ES6)

转载 作者:行者123 更新时间:2023-11-29 17:52:56 25 4
gpt4 key购买 nike

我有一个关于使用具有默认参数的 es6 函数的问题。

这是一个例子:

const add = (a = 1, b = 2) => a + b;

如您所见,ab 分别默认为 12

使用默认值,我可以在没有任何参数的情况下调用函数,如下所示:

add(); // 3

我也可以省略参数b:

add(2); // 4

为了省略参数a,我可以传入undefined:

add(undefined, 3); // 4

我的问题:

undefined 作为第一个参数传递以便使用默认的第一个参数(在本例中为 1)调用函数是否是一种不好的做法?

最佳答案

感谢JonathanMitchell用于建议对象参数。

const add = (args = {}) => {
const a = args.a || 1;
const b = args.b || 2;
return a + b;
}

例子:

add(); // 3
add({a: 2}) // 4
add({b: 3}); // 5

编辑:

loganfsmyth提供了更好的解决方案。

using || is bad form because if you pass 0 it would also use the default.

更好更紧凑的解决方案:

const add = ({a = 1, b = 2} = {}) => a + b

Logan 使用了 ES6 的 deconstruction assignment (参见“默认”值)分配 ab 默认值,以防此类参数评估为 undefined

关于javascript - 在函数中传入 undefined 作为参数 (ES6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41666804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com