これで、引数がJavaScript関数に渡されたかどうかを判別する2つのメソッドを見てきました。ある方法が他の方法よりも優れているのか、それとも使用するのが悪いのかと思いますか?
function Test(argument1, argument2) {
if (Test.arguments.length == 1) argument2 = 'blah';
alert(argument2);
}
Test('test');
または
function Test(argument1, argument2) {
argument2 = argument2 || 'blah';
alert(argument2);
}
Test('test');
私の知る限り、どちらも同じ結果になりますが、本番環境では最初の1つだけを使用しました。
トムが述べた別のオプション:
function Test(argument1, argument2) {
if(argument2 === null) {
argument2 = 'blah';
}
alert(argument2);
}
フアンのコメントに従って、トムの提案を次のように変更することをお勧めします。
function Test(argument1, argument2) {
if(argument2 === undefined) {
argument2 = 'blah';
}
alert(argument2);
}
argument2 || 'blah';
場合は「何とか」になりますargument2
されfalse
、それが定義されていないいないだけであれば(!)。 場合はargument2
ブール値であり、関数が渡されfalse
、それのために、その行は、にもかかわらず、「何とか」を返しますargument2
適切に定義されています。
argument2
である0
、''
またはnull
。