Aujourd'hui, j'ai vu un morceau de code JS compressé du compresseur YUI:
usernum && (Ind + = index, Ind> = usernum && (Ind - = usernum), Ind <0 && (ind === -2 && (Ind = -1), Ind + = usernum), Selli.RemoveClass ("on"), $ (selli [Ind]). addClass ("on"));
Je suis devenu fou, et probablement peu de gens pouvaient tout comprendre en même temps. Puis le "traduire".
&& (logistique et)
Voici principalement une opération "&&". Tout d'abord, vous devez comprendre cela et voir un exemple simple:
1 var a = 1 && 2 && 3; // 3
2 var b = 0 && 1 && 2; // 0
3 var c = 1 && 0 && 2; // 0
4 alerte (a), alerte (b), alerte (c);
Hehe, la méthode d'écriture est très étrange, le résultat de l'exécution est de 3, 0, 0. En général, nous l'utilisons souvent dans les instructions IF. L'opération "&&" (logique et) est vraiment l'opposé de "||" opération. L'opération "&&" revient lorsqu'il rencontre FAUX.
Par exemple: A && b, si A est vrai, renvoyez directement B, que B soit vrai ou faux. Si A est faux, renvoyez un directement. Dans l'exemple ci-dessus, le premier var a = 1 && 2 && 3; car 1 && 2, 1 est vrai, return 2; 2 && 3, 2 est vrai, retour 3.
Après avoir compris l'opération "&&", regardez le code JS compresseur du compresseur YUI dans la surface supérieure et traduisez-le:
if (usernum) {Ind + = index; if (Ind> = usernum) {ind- = usernum;} if (ind <0) {if (Ind === -2) {Ind = -1;} Ind + = usernum;} selli.reMoveClass ("on"); $ (seleli [Ind]). AddClass ("sur"); }Pour avoir honte, je suis vieux et je "traduit" depuis une demi-heure, mais ce n'est qu'avec l'aide de mes collègues que la "traduction" est correcte.
|| (logique ou)
Jetons un coup d'œil au «||» (logique ou) opération et voir l'exemple:
1 var a = 0 || 1 || 2; // 1
2 var b = 1 || 0 || 3; // 1
3 alerte (a), alerte (b);
Le "||" L'opération revient lorsqu'il rencontre True. Par exemple: A || B, si A est faux, renvoyez directement B, que B soit vrai ou faux. Si A est vrai, il reviendra directement et ne continuera pas à s'exécuter.
&& (logique et) et || (logique ou) doit être prêté attention à leur priorité:
&& (Logic &) La priorité est supérieure à || (Logique ou)
return a && b || C,
Nous pouvons juger la valeur de retour en fonction de a. Si A est faux, il reviendra certainement C; Si B et C sont tous les deux vrais, nous pouvons décider si B ou C en fonction de a. Si A est faux, il reviendra c. Si A est vrai, il reviendra b.
renvoyer un || b && c
Selon la priorité, B && c est calculé d'abord, puis a est ou avec a; Si A est vrai, il renvoie A, que ce soit B ou C, si A est faux, alors si B est faux, il renvoie B, et si B est vrai, il renvoie C;
1 var a = 3 && 0 || 2; // 2
3 var b = 3 || 0 && 2; // 3
5 var c = 0 || 2 && 3; // 3
6 alerte (a), alerte (b), alerte (c);
Également attaché: priorité de l'opérateur JS (répertorié de haut à bas)
| Opérateurs | décrire |
| . [] () | Accès sur le terrain, indice de tableau, appels de fonction et groupement d'expression |
| ++ - - ~! Supprimer un nouveau type de vide | Opérateur unaire, type de données de retour, création d'objets, valeur non définie |
| * /% | Multiplication, division, extraction de moisissure |
| + - + | Addition, soustraction, concaténation de cordes |
| << >> >>>> | Changement |
| <<=>> = instance | inférieur, inférieur ou égal à, supérieur à, supérieur ou égal à, instance de |
| ==! = ===! == | Égal, pas égal, strictement égal, pas strictement égal |
| & | dans le monde et |
| ^ | XOR |
| | | bit ou |
| && | Logique et |
| || | Logique ou |
| ?: | condition |
| = op = | Affectation, affectation opérationnelle |
| , | Évaluation multiple |
L'article ci-dessus discute brièvement des opérateurs JS && et || Et leurs priorités sont tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.