Question

Attacklab.wmd_env.buttons=Attacklab.wmd_env.buttons||_4;

qu'est-ce que le || faire dans ce cas?
Ajoute _4 au tableau Attacklab.wmd_env.buttons?

Était-ce utile?

La solution

L'opérateur || dans JavaScript renvoie la valeur à gauche si cette valeur n'est pas évaluée à false , sinon il renvoie la valeur à droite.

De Référence de JavaScript 1.5 pour le noyau de Mozilla :

  

expr1 || expr2
  Renvoie expr1 s'il peut être converti en true; sinon, retourne expr2 . Ainsi, lorsqu'il est utilisé avec des valeurs booléennes, || renvoie true si l'un des opérandes est true; si les deux sont faux, retourne faux.

Donc, dans ce cas, si Attacklab.wmd_env.buttons n'a pas de valeur, il définit la valeur sur _4 .

Autres conseils

C'est une façon élégante d'écrire

if(!Attacklab.wmd_env.buttons)
    Attacklab.wmd_env.buttons = _4;

C'est bien de fournir des valeurs par défaut. Gardez à l'esprit que non seulement null et indéfini déclenchera le conditionnel, mais aussi 0 , false et '' , c'est-à-dire tout ce qui est considéré comme false dans des contextes booléens.

Si Attacklab.wmd_env.buttons est null ou undefined , sa valeur par défaut _4 .

Le || L'opérateur vérifie si la valeur fournie à gauche de l'expression est fausse (dans un contexte booléen). Si tel est le cas, une autre valeur est indiquée par le côté droit de l'expression. Sinon, il retourne la valeur d'origine.

Ainsi, par exemple, le code suivant définirait "Foo" sur une valeur par défaut s'il est null:

Foo = Foo || "Default Value" 

Ceci est parfois appelé l'opérateur de coalescence. Il est pris en charge dans d'autres langues telles que Ruby et Perl. C # a le ?? opérateur qui fait la même chose.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top