Hoje eu vi um pedaço do compressor YUI Código JS compactado:
Usernum && (Ind += Índice, Ind> = Usernum && (ind -= Usernum), Ind <0 && (ind === -2 && (ind = -1), ind += Usernum), Selli.RemoveClass ("em"), $ (Selli [ind]). AddClass ("em"););
Fiquei louco e provavelmente poucas pessoas puderam entender tudo de uma só vez. Então "traduza" ele.
&& (logística e)
Aqui está principalmente uma operação "&&". Primeiro de tudo, você precisa entender isso e ver um exemplo simples:
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);
Hehe, o método de escrita é muito estranho, o resultado da corrida é 3, 0, 0. Geralmente, geralmente o usamos nas declarações if. A operação "&&" (lógica e) é realmente o oposto de "||" operação. A operação "&&" retorna quando encontra falsa.
Por exemplo: a && b, se A for verdadeiro, retorne diretamente B, independentemente de B ser verdadeiro ou falso. Se A for falso, retorne diretamente. No exemplo acima, o primeiro var a = 1 && 2 && 3; porque 1 && 2, 1 é verdadeiro, retornar 2; 2 && 3, 2 é verdadeiro, retornar 3.
Depois de entender a operação "&&", olhe para o código JS compactado do compressor YUI na superfície superior e traduz -o:
if (usernum) {ind += index; if (ind> = usernum) {ind- = usernum;} if (ind <0) {if (ind === -2) {ind = -1;} ind += usernum;} selli.roMovecLass ("); }Para ter vergonha, sou velho e estou "traduzindo" por meia hora, mas é apenas com a ajuda de meus colegas que a "tradução" está correta.
|| (lógico ou)
Vamos dar uma olhada no "||" (lógica ou) operação e veja o exemplo:
1 var a = 0 || 1 || 2; // 1
2 var b = 1 || 0 || 3; // 1
3 alerta (a), alerta (b);
O "||" A operação retorna quando encontra verdadeira. Por exemplo: a || B, se A for falso, retorne diretamente B, independentemente de B ser verdadeiro ou falso. Se A for verdadeiro, ele retornará diretamente e não continuará sendo executado.
&& (lógico e) e || (lógico ou) deve receber atenção à sua prioridade:
&& (lógica &) prioridade é maior que || (Lógica ou)
retornar a && b || c,
Podemos julgar o valor de retorno com base em a. Se A for falso, ele definitivamente retornará C; Se B e C são verdadeiros, podemos decidir se B ou C com base em a. Se A for falso, retornará c. Se A for verdadeiro, ele retornará b.
retornar um || b && c
De acordo com a prioridade, B && c é calculado primeiro e depois a ou com a; Se A for verdadeiro, ele retorna a, seja B ou C, se A for falso, se B for falso, ele retornará B e se B for verdadeiro, ele retorna 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);
Também anexado: JS Prioridade do operador (listado de alto a baixo)
| Operadores | descrever |
| . [] () | Acesso em campo, subscrito de matriz, chamadas de função e agrupamento de expressão |
| ++ - - ~! Excluir novo tipo de vazio | Operador unário, Tipo de dados de retorno, criação de objetos, valor indefinido |
| */ % | Multiplicação, divisão, extração de mofo |
| + - + | Adição, subtração, concatenação de string |
| << >> >>>> | Mudança |
| <<=>> = instanceof | menor que, menor ou igual a, maior que, maior ou igual a, instância |
| ==! = ===! == | Igual, não igual, estritamente igual, não estritamente igual |
| & | Bit nejudado e |
| ^ | Bitwise xor |
| | | Bit nejudado ou |
| && | Lógica e |
| || | Lógico ou |
| ?: | doença |
| = op = | Atribuição, atribuição operacional |
| , Assim, | Avaliação múltipla |
O artigo acima discute brevemente os operadores JS && e || E suas prioridades são todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.