1

我的 script.js 中有一个函数,类似于:

function test(var1,var2=0,var3=0) {
// js
}

该函数工作正常,但在 chrome 中对其进行测试时,它返回未定义。我测试了一下,发现chrome不接受这个函数的原因是var2=0,var3=0。我试过 var2=false,var3=false,但结果还是一样。

这些变量是必需的,但并不总是被调用,那么在这种情况下解决方案是什么,因为 chrome 显然不喜欢这样声明变量?

谢谢

4

2 回答 2

2

很简单,你不能在函数声明中定义变量,但是你可以在函数调用之后检查这个变量。如果第二个或第三个参数没有传递给函数,那么在调用之后,这个参数将是未定义的,如果参数是未定义的,那么表达式 var || 的结果 0,将是 0。

function test(var1,var2,var3) {
var2 = var2 || 0;
var3 = var3 || 0;
// js
}
于 2013-02-23T12:43:15.300 回答
0

但是在 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
于 2013-02-23T12:46:46.240 回答