ES6中的默认参数会引发错误

时间:2016-09-27 10:56:41

标签: javascript ecmascript-6

如果我们有一个函数:

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

将其称为:

add(1,2); // returns 3

上面的代码工作正常,但如果我们称之为:

add(undefined, 2); //throws error

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

1 个答案:

答案 0 :(得分:3)

评估$ awk '($0=="username2" || p=="username2") && p=$0 {next} 1' file username pass username3 pass3 的默认初始化程序时,

second尚未初始化,它仍在temporal dead zone中,尽管being in scope,仍会在https://github.com/charliesome/better_errors内进行访问。

您应该将第二个参数设为可选:

first

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

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