Comment fonctionne l'affectation logique javascript?
En javascript, si nous avons un peu de code comme
var a = "one";
var b = q || a;
alert (b);
L'opérateur logique OU attribuera une valeur de b, et le message d'alerte sera "un".
Est-ce limité aux missions ou peut-on l'utiliser partout?
Il semble une chaîne vide est traité de la même comme indéfini. Est-ce vrai?
Comment est-ce de travailler avec ET variables? Que sur les combinaisons d'entre eux?
Ce qui est un bon exemple d'utilisation de ces idiomes, ou quand ne pas le faire?
source d'informationauteur Incognito
Vous devez vous connecter pour publier un commentaire.
Pour votre
q || a
afin d'évaluer laa
q
doit être un " falsy de valeur. Ce que vous avez fait est appelé "Court-circuit de l'évaluation".Répondre à vos questions:
Les opérateurs logiques (comme et -
&&
ou -||
) peut être utilisé dans d'autres situations. Plus généralement, dans le conditionnel commeif
. Plus iciChaîne vide n'est pas traitée comme
undefined
. Les deux sont falsy valeurs. Il y a un peu plus de falsy valeurs. Plus iciAND
ou&&
en JavaScript, n'est pas une variable. C'est un opérateurL'idiome vous avez utilisé est tout à fait commun.
var x = val || 'default'; //is generally a replacement for
var x = val ? val : 'default' //or
if (val)
var x = val;
else
var x = 'default';
La façon
||
fonctionne en Javascript est:true
de retour de l'opérande de gauche&& fonctionne de la même façon.
Vous pouvez faire usage de ce pour dans la ligne de l'existence des contrôles, par exemple:
sera mis
foo
àobj.property
siobj
est défini et "truthy".Je ne suis pas tout à fait sûr, je suis à votre question. Vous pouvez utiliser une expression partout où vous pouvez utiliser une expression, et un opérateur logique sur deux expressions résultats dans une expression.
Le dernier bit est utile. Comme la plupart des langues, Javascript 'court-circuit' ANDs et ORs. Si la première partie ET qui est fausse, il n'a pas d'évaluer le second bit vous permet d'économiser de division par 0. Si la première partie de un OU est vrai, il n'a pas d'évaluer le second.
Mais vous pouvez utiliser des opérateurs booléens partout où vous pouvez utiliser une expression.
Javascript évalue la logique en truethness/fausseté. Des valeurs telles que (
false
"", null,undefined
0
-0) sont évalués comme la logique faux.Combiner cela avec l'évaluation différée " OU " opérations sont maintenant évaluées à partir de
left to right
et s'arrête une foistrue
est trouvé. Depuis, dans votre exemple, le truthness n'est pas littéralement un booléen, la valeur est retournée.Dans ce cas:
cela peut aussi être d'autres objets.
Ce comportement est partagé avec d'autres langages de script comme Perl. L'opérateur logique OU peut être utilisé comme un syntaxiques raccourci pour spécifier les valeurs par défaut en raison du fait que l'opérateur logique OU s'arrête l'évaluation de ses opérandes lorsqu'il rencontre la première expression qui s'évalue à true: "l'évaluation de la première opérande et si la valeur est interprétée comme de faux pas, de lui attribuer. Sinon, répétez l'opération pour le deuxième opérande."
J'ai trouver j'ai souvent utiliser ce comportement pour spécifier des valeurs par défaut pour les paramètres de la fonction. E. g.
À mon humble avis - n'utilisez pas de type booléen affectation. Il peut être source de confusion. Comme undefined !== faux, c'est à dire faux en lui-même est une valeur.
E. g. Si tu veux copier la valeur d'un champ à partir d'un objet si et seulement si ce champ est défini
De type booléen affectation, u devrait vraiment utiliser