我的 script.js 中有一个函数,类似于:
function test(var1,var2=0,var3=0) {
// js
}
该函数工作正常,但在 chrome 中对其进行测试时,它返回未定义。我测试了一下,发现chrome不接受这个函数的原因是var2=0,var3=0。我试过 var2=false,var3=false,但结果还是一样。
这些变量是必需的,但并不总是被调用,那么在这种情况下解决方案是什么,因为 chrome 显然不喜欢这样声明变量?
谢谢
我的 script.js 中有一个函数,类似于:
function test(var1,var2=0,var3=0) {
// js
}
该函数工作正常,但在 chrome 中对其进行测试时,它返回未定义。我测试了一下,发现chrome不接受这个函数的原因是var2=0,var3=0。我试过 var2=false,var3=false,但结果还是一样。
这些变量是必需的,但并不总是被调用,那么在这种情况下解决方案是什么,因为 chrome 显然不喜欢这样声明变量?
谢谢
很简单,你不能在函数声明中定义变量,但是你可以在函数调用之后检查这个变量。如果第二个或第三个参数没有传递给函数,那么在调用之后,这个参数将是未定义的,如果参数是未定义的,那么表达式 var || 的结果 0,将是 0。
function test(var1,var2,var3) {
var2 = var2 || 0;
var3 = var3 || 0;
// js
}
但是在 chrome 中对其进行测试时,它返回为 undefined
是的,因为函数没有返回值
此外,不能像这样定义默认参数:test(var1,var2=0,var3=0)
Silver_Clash 的解决方案有效:
function f(opt){
opt = opt||"default"
console.log(opt);
return opt;
}
f("hello");
f();
//output:
//hello
//default