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 argument2est false(!), Pas simplement s'il n'est pas défini. Si argument2est un booléen et que la fonction est passée falsepour cela, cette ligne retournera 'blah' bien qu'elle argument2soit correctement définie .
argument2est 0, ''ou null.