gpt4 book ai didi

javascript - ES6 中的默认参数抛出错误

转载 作者:行者123 更新时间:2023-11-30 11:50:11 30 4
gpt4 key购买 nike

如果我们有一个函数:

function add(first = second, second) { return first + second;   }

称其为:

add(1,2); // returns 3

上面的代码工作正常,但如果我们将其命名为:

add(undefined, 2); //throws error

我不确定在 ES6 中内部参数是如何解析的,这导致最后一个参数出错。

最佳答案

second 在评估 first 的默认初始化程序时尚未初始化,它仍在 temporal dead zone 中尽管 being in scope 访问它会抛出.

你应该使第二个参数可选:

function add(first, second = first) { return first + second; }
// and call it as
add(2);
add(2, undefined);

如果你真的想让第一个可选,你必须在函数体中做:

function add(first, second) { return first + (second === undefined ? first : second); }

关于javascript - ES6 中的默认参数抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39722854/

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