Qu'est-ce que le || opérateur faire?
-
06-07-2019 - |
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?
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
Renvoieexpr1
s'il peut être converti en true; sinon, retourneexpr2
. 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.