Hoy vi un pedazo de compresor YUI Compressed JS Code:
usernum && (ind += index, ind> = usernum && (ind -= usernum), ind <0 && (ind === -2 && (ind = -1), ind += usernum), selli.removeclass ("on"), $ (selli [ind]). addClass ("on"));
Me volví loco, y probablemente pocas personas pudieron entenderlo todo a la vez. Entonces "traducirlo".
&& (logística y)
Aquí es principalmente una operación "&&". En primer lugar, debe comprender esto y ver un ejemplo simple:
1 var a = 1 && 2 && 3; // 3
2 var b = 0 && 1 && 2; // 0
3 var c = 1 && 0 && 2; // 0
4 alerta (a), alerta (b), alerta (c);
Jeje, el método de escritura es muy extraño, el resultado de ejecutar es 3, 0, 0. Generalmente a menudo lo usamos en declaraciones IF. La operación "&&" (lógica y) es realmente lo opuesto a "||" operación. La operación "&&" regresa cuando se encuentra con falso.
Por ejemplo: A && B, si A es verdadero, regresa directamente B, independientemente de si B es verdadero o falso. Si A es falso, entonces devuelva un directamente. En el ejemplo anterior, el primer var a = 1 && 2 && 3; porque 1 && 2, 1 es verdadero, devuelve 2; 2 && 3, 2 es verdadero, regresa 3.
Después de comprender la operación "&&", luego mire el código JS comprimido por compresor YUI en la superficie superior y tradúdelo:
if (usernum) {ind += index; if (ind> = usernum) {ind- = usernum;} if (ind <0) {if (ind === -2) {ind = -1;} ind += usernum;} selli.removeclass ("en"); $ (selli [ind]). addClass ("en");; }Para avergonzarse, soy viejo y he estado "traduciendo" durante media hora, pero solo con la ayuda de mis colegas que la "traducción" es correcta.
|| (OR lógico)
Echemos un vistazo al "||" (Operación lógica o), y vea el ejemplo:
1 var a = 0 || 1 || 2 ;/ 1
2 var b = 1 || 0 || 3 ;/ 1
3 alerta (a), alerta (b);
El "||" La operación regresa cuando se encuentra verdadero. Por ejemplo: A || B, si A es falso, regresa directamente B, independientemente de si B es verdadero o falso. Si A es verdadero, volverá directamente y no continuará ejecutándose.
&& (lógico y) y || (Lógico o) debe prestarse atención a su prioridad:
&& (Logic &) La prioridad es mayor que || (Lógica o)
devolver a && b || c,
Podemos juzgar el valor de devolución basado en a. Si A es falso, definitivamente regresará C; Si B y C son verdaderos, entonces podemos decidir si B o C se basa en A. Si A es falso, devolverá c. Si A es verdadero, volverá b.
devolver a || b && c
De acuerdo con la prioridad, B && C se calcula primero, y luego a es o con a; Si A es verdadero, devuelve A, ya sea B o C, si A es falso, entonces si B es falso, devuelve B, y si B es verdadero, devuelve C;
1 var a = 3 && 0 || 2; // 2
3 var b = 3 || 0 && 2; // 3
5 var c = 0 || 2 && 3; // 3
6 alerta (a), alerta (b), alerta (c);
También adjunto: prioridad del operador JS (listado de alto a bajo)
| Operadores | describir |
| . [] () | Acceso de campo, subíndice de matriz, llamadas de funciones y agrupación de expresiones |
| ++ - - ~! Eliminar el nuevo tipo de typing void | Operador unario, tipo de datos de retorno, creación de objetos, valor indefinido |
| */ % | Multiplicación, división, extracción de moho |
| + - + | Adición, resta, concatenación de cadenas |
| << >> >>>> | Cambio |
| <<=>> = instanciaf | menor que, menor o igual a, mayor que, mayor o igual |
| ==! = ===! == | Igual, no igual, estrictamente igual, no estrictamente igual |
| Y | bit a bit y |
| ^ | xor bit a bit |
| | | bit a bit o |
| && | Lógica y |
| || | Lógico o |
| ?: | condición |
| = OP = | Asignación, asignación operativa |
| , | Evaluación múltiple |
El artículo anterior discute brevemente los operadores JS && y || Y sus prioridades son todo el contenido que comparto con ustedes. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.