Ich habe jetzt 2 Methoden gesehen, um festzustellen, ob ein Argument an eine JavaScript-Funktion übergeben wurde. Ich frage mich, ob eine Methode besser ist als die andere oder ob eine nur schlecht anzuwenden ist.
function Test(argument1, argument2) {
if (Test.arguments.length == 1) argument2 = 'blah';
alert(argument2);
}
Test('test');
Oder
function Test(argument1, argument2) {
argument2 = argument2 || 'blah';
alert(argument2);
}
Test('test');
Soweit ich das beurteilen kann, führen beide zu demselben Ergebnis, aber ich habe bisher nur das erste in der Produktion verwendet.
Eine weitere Option, wie von Tom erwähnt :
function Test(argument1, argument2) {
if(argument2 === null) {
argument2 = 'blah';
}
alert(argument2);
}
Laut Juans Kommentar wäre es besser, Toms Vorschlag zu ändern in:
function Test(argument1, argument2) {
if(argument2 === undefined) {
argument2 = 'blah';
}
alert(argument2);
}
argument2 || 'blah';
in ‚blah‘ führen , wenn argument2
ist false
, nicht nur , wenn es nicht definiert ist (!). Wenn argument2
es sich um einen Booleschen Wert handelt und die Funktion dafür übergeben false
wird, gibt diese Zeile trotz argument2
korrekter Definition 'blah' zurück .
argument2
ist 0
, ''
oder null
.