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 argument2ist false, nicht nur , wenn es nicht definiert ist (!). Wenn argument2es sich um einen Booleschen Wert handelt und die Funktion dafür übergeben falsewird, gibt diese Zeile trotz argument2korrekter Definition 'blah' zurück .
argument2ist 0, ''oder null.