11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'aimerais donner une valeur par défaut à un peramettre de fonction.
Voici ce que j'ai écris:

function foo (param) {
    var param = param || 'defaultValue';
    return param;
}


Cela semble fonctionner.

foo('myValue');  //retourne 'myValue'
foo();              //retourne 'defaultValue'


Mais je ne suis pas certain que ce code soit parfait.
Par exemple, dois-je obligatoirement utiliser VAR pour m'assurer que param possède bien une portée locale ?

Merci pour votre aide.
Modifié par Mathieu_vd (03 Feb 2009 - 17:10)
Bonjour, c'est une forme très utilisée, cependant, il faut plutôt omettre le var, vu que la variable est déjà déclarée dans la liste des paramètres, et elle sera alors locale à la fonction.
Un problème se pose cependant lorsque la valeur par défaut de l'argument vaut false, null ou 0.
Merci pour ta réponse Fabien.
Je viens juste de regarder dans le code source de prototype.js et, en effet, le VAR ne semble pas utile.

"fabien.menager a écrit :
Un problème se pose cependant lorsque la valeur par défaut de l'argument vaut false, null ou 0.


Si on veut éviter le problème évoqué, le code suivant est-il suffisant ?

function foo (param) {
    if (undefined === param) {param = 'defaultValue';}
    return param;
}