Oui, il peut le faire, mais strictement parlant, cela attribuera la valeur par défaut si la valeur récupérée est faux par opposition à véritablement indéfini . Elle ne correspondrait donc pas seulement undefined
mais aussi null
, false
, 0
, NaN
, ""
(mais no "0"
).
Si vous voulez que la variable soit définie par défaut uniquement si elle est strictement undefined
alors le moyen le plus sûr est d'écrire :
var x = (typeof x === 'undefined') ? your_default_value : x;
Sur les navigateurs les plus récents, il est possible d'écrire en toute sécurité :
var x = (x === undefined) ? your_default_value : x;
mais sachez qu'il est possible de contourner cette règle sur les anciens navigateurs où il était permis de déclarer une variable nommée undefined
qui a une valeur définie, ce qui fait échouer le test.