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

簡単です。関数宣言で変数を定義することはできませんが、関数呼び出し後にこの変数を確認できます。2 番目または 3 番目の引数が関数に渡されない場合、呼び出し後、この引数は未定義になり、引数が未定義の場合、式 var || の結果が返されます。0、0になります。

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

しかし、クロムでテストすると、未定義として返されます

はい、関数には戻り値がないため、そうです

また、デフォルト パラメータは次のように定義できません。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 に答える