1. Operador univariado
1. Operadores de autoconfiança e autodenagem: divididos no front-end e traseiro;
Pré-tipo: ++ a;-a;
Pós-tipo: a ++; um--;
exemplo:
A cópia do código é a seguinte:
<script type = "text/javascript">
var a, b, i = 1, j = 1;
a = i ++;
b = ++ j;
alerta ("a ="+a+", i ="+i+", b ="+b+", j ="+j); // a = 1, i = 2, b = 2, j = 2
</script>
onde a = i ++ é equivalente a a = i; i = i+1;
E b = ++ j, equivalente a j = j+1; b = j;
2. Operadores unários de adição e subtração: a =+i; a = -i;
A cópia do código é a seguinte:
<script type = "text/javascript">
var a, b, i = 1, j = 1;
a =+i;
b = -j;
alerta ("a ="+a+", i ="+i+", b ="+b+", j ="+j); // a = 1, i = 1, b = -1, j = 1
</script>
Para números inteiros, uma subtração de um dígito é equivalente a tomar um número negativo.
2. Operador de bits
1. Bitwise não ~ (não)
Não, isto é, inverso, todos os números em forma binária.
Uso comum: a operação de bit não é essencialmente um número negativo e depois subtraia 1
2. Bitwise ou | (OU)
Ou, isto é, todos os números e números de destino são bit -netwise ou operados em forma binária.
Uso comum: geralmente é usado para atribuição incondicional de números binários. Por exemplo: um número | 1 é equivalente ao número ímpar mais próximo do número atual.
3. Bitwise & & (e)
E, isto é, todos os números e números de destino são bit netwise em forma binária.
Uso comum: geralmente é usado para operações de bits binárias, como: um número e 1, se o resultado for 0, é um número par e, se for 1, é um número ímpar.
4. Bitwise xor^ (xor)
Exclusivo ou significa que todos os números são comparados com o número de destino em forma binária. Apenas dois números são diferentes, ou seja, apenas um dígito armazena 1 quando 1 é 1 e retorne 0 se dois números forem iguais.
Uso comum: a operação inversa da operação XOR é a própria, ou seja, o resultado final do número XOR é inalterado duas vezes. Pode ser usado para criptografia simples ou operações numéricas interativas.
5. Mova para a esquerda <<
Mova para a esquerda, ou seja, mova todos os números para a esquerda em forma binária, mova o número correspondente de dígitos, mova a posição alta (descarte) e preencha a posição zero na posição baixa. Mover para a esquerda não afetará o bit de sinal.
Significado matemático: Na premissa de que os números não transbordam, para números positivos e negativos, a mudança de esquerda é equivalente a multiplicar por 2 até a potência de 1, e a mudança de n bits esquerda é equivalente a multiplicar por 2 ao poder de n.
6. Mova -se para a direita
6.1 Mudança direita assinada >>: isto é, mova todos os valores para a direita na forma binária, mas retém os bits de sinal.
Significado matemático: na premissa de que os números não transbordam, para números positivos e negativos, a mudança da direita é equivalente a dividir por 2 para a primeira potência, e a mudança de n bits direita é equivalente a dividir por 2 para o N Power.
6.2 Mudança direita não assinada >>>: isto é, mova todos os valores, incluindo bits de sinal, para a direita na forma binária.
Para números positivos, os resultados são os mesmos;
Para números negativos, como os números negativos são representados em seu complemento de valor absoluto, o resultado será muito grande quando mudanças à direita não assinadas.
3. Operador booleano
1. Não lógico lógico!
A lógica não é útil! Indica que qualquer tipo de valor com o ECMAScript pode ser aplicado e a não operação lógica retorna um valor booleano (true/false). O operador primeiro converte seu operando em um valor booleano e depois o inverte.
! ! Equivalente à função booleana ().
Um conjunto de regras para função de transformação booleana ().
O valor convertido em verdadeiro é convertido em falso
BooleantTruefalse
String qualquer string não vazia "" (string vazia)
Número de qualquer valor numérico diferente de zero (incluindo infinito) 0 e NAN
Objetar qualquer objeto nulo
Indefinido sem defesa
2. Lógica e &&
Existem dois operandos para a lógica e há dois operandos.
A lógica e as operações podem ser aplicadas a qualquer tipo de operando, não apenas booleanos. Quando um operando não é booleano, a lógica e as operações não retornam necessariamente um booleano; Neste momento, segue as seguintes regras:
1. Se o primeiro operando for um objeto, o segundo operando será retornado;
2. Se o segundo operando for um objeto, o objeto só será retornado se o resultado da avaliação do primeiro operando for verdadeiro;
3. Se ambos os operadores forem objetos, o segundo operando será retornado; Siga a primeira regra.
4. Se um operando for nulo, retorne nulo;
5. Se um operando for nan, retornar nan;
6. Se um operando for indefinido, indefinido será devolvido.
Lógica e operações são operações de curto-circuito, ou seja, se o primeiro operando puder determinar o resultado, o segundo operando não será avaliado novamente. (Pode ser entendido como duas operações de retorno interno). Portanto, quando as regras 4, 5 e 6 conflitam, o princípio da operação de curto-circuito é seguido.
A cópia do código é a seguinte:
var nul = null;
var na = nan;
teste var;
teste = na && nul;
document.write (teste); // nan
A cópia do código é a seguinte:
var nul = null;
var na = nan;
teste var;
teste = nul && na;
document.write (teste); //nulo
3. Lógico ou ||
Lógico ou tem dois operando.
Lógico ou semelhante à lógica, as operações podem ser aplicadas a qualquer tipo de operando, não apenas booleanos. No caso em que um operando não é um booleano, a lógica ou operação não retorna necessariamente um booleano; Neste momento, segue as seguintes regras:
1. Se o primeiro operando for um objeto, o primeiro operando será retornado;
2. Se o resultado do primeiro operando for falso, o segundo operando será retornado;
3. Se ambos os operadores forem objetos, o primeiro operando será retornado, seguindo a primeira regra.
4. Se ambos os operando forem nulos, retorne nulos;
5. Se ambos os operandos forem nan, retorne a nan;
6. Se ambos os operando forem indefinidos, indefinido será devolvido.
A lógica ou operação é uma operação de curto-circuito, ou seja, se o primeiro resultado do operando for verdadeiro, o segundo operando não será avaliado novamente.
Podemos usar esta propriedade da lógica ou para evitar atribuir valores nulos ou indefinidos a variáveis
Por exemplo: var myObject = FirstObject || SecondObject
Se o FirstObject não for nulo, o FirstObject será atribuído ao MyObject, caso contrário, o valor do SecondObject será atribuído ao MyObject.
O conteúdo acima é tudo sobre este artigo, espero que seja útil para todos