variable === undefined vs typeof variable === “undefined”

La jQuery Core lignes Directrices de Style proposons deux manières différentes afin de vérifier si une variable est définie.

  • Variables Globales: typeof variable === "undefined"
  • Variables Locales: variable === undefined
  • Propriétés: object.prop === undefined

Pourquoi jQuery utiliser une approche pour les variables globales et un autre pour les habitants et les propriétés?

  • Je ne peux pas répondre à la question de savoir pourquoi JQuery serait d'utiliser les deux approches, mais Javascript intéressant bizarreries que veulent dire ces deux choses sont légèrement différentes. Il ne devrait pas la plupart du temps (c'est à dire si votre code est sain d'esprit), mais il existe des différences toutefois: Voir ici pour une écriture-up - wtfjs.com/2010/02/15/undefined-is-mutable
  • Comme @Struppi souligné, jQuery ultrapériphériques de la fonction a un argument nommé indéfini. Dans jQuery, foo === undefined est de la vérification de la copie locale de l'indéfini au lieu de la global (de la fenêtre.undefined), qui peuvent avoir été modifiés par les fous de code. Le fait que l'indéfini est mutable est certainement intéressant de noter, et je suis heureux de l'avoir fait. (+1)
  • Lien actuel pour que l'article est wtfjs.com/wtfs/2010-02-15-undefined-is-mutable