Pour vérifier undefined
vous pouvez simplement utiliser les mêmes/différents sans conversion opérateurs:
if (x !== undefined) { ... }
if (y === undefined) { ... }
Notez cependant que cela n'a pas la même signification !!
exacte. La double négation par exemple renvoie true
même pour false
, null
, 0
ou ""
en dépit du fait que ces valeurs ne sont pas undefined
.
Par ailleurs en Javascript, vous devriez toujours essentiellement utilisation ===
et !==
au lieu de ==
et !=
, à moins que vous avez vraiment besoin de la conversion implicite fou que les opérateurs d'égalité/différents font (et personne n'a besoin que). Les bons éditeurs Javascript vous préviendront de l'utilisation de ==
ou !=
car ils ne sont que des cachettes.
Dans le spécifique de votre code question la logique !!
semble mal sur le plan philosophique, car un modèle vide pourrait être ""
et cette fonction serait dire que le modèle n'a pas été chargé en place, il a été chargé et se produit tout simplement être la chaîne vide.
modèles typeof [nomwidget]! == "undefined" – Lain
'' !! convertira la valeur de 'templates [nomwidget]' un booléen comme par 'booléens (modèles [nomwidget])'. Comment 'false == undefined' est-il meilleur que la comparaison directe comme dans' templates [widgetName] == undefined'? – RobG