2011-08-24 3 views
-1

Je suis un peu confus avec la syntaxe ici.que fait "window.gapi = window.gapi || {};" signifier?

window.foo = window.bar || {}; 

Des idées? J'essaie juste de mieux comprendre Java. Merci

+0

duplication possible de [Que signifie "var FOO = FOO || {}" en Javascript?] (Http://stackoverflow.com/questions/6439579/what-does-var-foo-foo-mean-in -javascript) –

+0

http://stackoverflow.com/questions/3088098/in-javascript-what-does-it-mean-when-there-is-a-logical-operator-in-a-variable-d –

+0

Ah. Oui, j'ai vérifié ceux-là aussi et ils sont aussi très utiles. Je suppose que pas tout à fait comprendre le concept, il est difficile de comprendre comment formuler une question. Merci pour l'aide! Bravo –

Répondre

4

Si window.bar est nulle ou non définie (aussi: 0, "", NaN et false), puis window.foo sera réglé sur un objet vide ({}), sinon il sera window.bar.

L'opérateur OR logique (||) fonctionne comme un opérateur de coalescence nulle dans cette situation. Il est essentiellement un raccourci pour:

window.foo = (window.bar != null ? window.bar : {}); 

This post explique le comportement plus en détail.

+0

Si window.bar est __falsy__ (qui inclut mais n'est pas limité à null et indéfini) alors window.foo sera défini sur un objet vide. –

+0

@CD: mise à jour pour inclure les autres valeurs "falsifiées". –

+0

Génial, merci beaucoup pour l'aide, c'est exactement ce que je cherchais. À votre santé! –

Questions connexes