3 votes

Quelle est la méthode la plus efficace pour définir des valeurs de paramètres par défaut en javascript ?

Je connais deux méthodes pour définir un paramètre par défaut, mais j'aimerais savoir quelle est la méthode à privilégier.

function Foo(par1, par2)
{
    if(par2 == null)
        par2 = "my default"
}

ou

function Foo(par1, par2)
{
    par2 = par2 || "my default"
}

ou existe-t-il un meilleur moyen que l'un ou l'autre ?

EDIT :

J'aimerais également savoir comment les autres traitent les paramètres facultatifs multiples comme celui-ci : Nous avons plusieurs fonctions de ce type dans les bibliothèques internes (je pense qu'elles sont assez laides).

function Foo(par1, par2, par3)
{
    if(par2 == null)
        par2 = "my default"
    if(par3 == null)
        par3 = "my default"
    // Do something
}

Et de l'appeler :

Foo("Parameter one",null,true)

1voto

Christoph Points 64389

Similaire y connexe Les questions ont déjà été posées.

1voto

Grant Wagner Points 14085

Le choix que je fais dépend du type de paramètre et de la valeur par défaut requise.

Par exemple, la "valeur par défaut" sera attribuée si par2 est false, 0, une chaîne vide, null ou undefined :

par2 = par2 || 'default value';

Ce comportement peut ne pas correspondre à ce qui est attendu ou exigé.

0voto

Logan Serman Points 11537

Je n'ai jamais entendu parler de la deuxième méthode que vous avez mentionnée, c'est intéressant. Je le ferais :

function Foo(par1, par2)
{
    par2 = par2 ? par2 : 'default value';
}

Mais maintenant que vous portez à mon attention votre deuxième méthode, je pense que je l'utiliserais simplement parce qu'elle est moins contraignante.

0voto

Pim Jager Points 20018

Si vous utilisez jquery, vous pouvez le faire :

function foo(params){
 var params = $.extend({}, {bar: '2'}, params);
 alert(params.bar);
}
foo(); //Alerts 2

0voto

epascarello Points 71353

La seule chose à laquelle vous devez penser lorsque vous utilisez la solution de

var foo = bar || 123 ;

est ce que les valeurs de bar qui évaluent à faux. Cela pourrait vous causer des problèmes par la suite.

Eric

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X