J'ai maintenant vu 2 méthodes pour déterminer si un argument a été passé à une fonction JavaScript. Je me demande si une méthode est meilleure que l'autre ou si l'une est tout simplement mauvaise à utiliser?
function Test(argument1, argument2) {
if (Test.arguments.length == 1) argument2 = 'blah';
alert(argument2);
}
Test('test');
Ou
function Test(argument1, argument2) {
argument2 = argument2 || 'blah';
alert(argument2);
}
Test('test');
Pour autant que je sache, ils aboutissent tous deux à la même chose, mais je n'ai utilisé que le premier avant en production.
Une autre option mentionnée par Tom :
function Test(argument1, argument2) {
if(argument2 === null) {
argument2 = 'blah';
}
alert(argument2);
}
Selon le commentaire de Juan, il serait préférable de changer la suggestion de Tom pour:
function Test(argument1, argument2) {
if(argument2 === undefined) {
argument2 = 'blah';
}
alert(argument2);
}
argument2 || 'blah';
résultera en «bla» si argument2
est false
(!), Pas simplement s'il n'est pas défini. Si argument2
est un booléen et que la fonction est passée false
pour cela, cette ligne retournera 'blah' bien qu'elle argument2
soit correctement définie .
argument2
est 0
, ''
ou null
.