1. Operador univariado
1. Operadores de autoinforme y autodecuros: divididos en front-end y trasero;
Pre-type: ++ a;-a;
Tipo post: A ++; a--;
ejemplo:
La copia del código es la siguiente:
<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>
donde a = i ++ es equivalente a a = i; i = i+1;
Y b = ++ j, equivalente a j = j+1; b = j;
2. Operadores de adición y sustracción unarios: a =+i; a = -i;
La copia del código es la siguiente:
<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 los enteros, una resta de un dígito es equivalente a tomar un número negativo.
2. Operador de bits
1. Bitwise no ~ (no)
No, es decir, inverso todos los números en forma binaria.
Uso común: la operación de bit no es esencialmente un número negativo y luego reste 1
2. Bitwise o | (O)
O, es decir, todos los números y los números objetivo son bit a bit u operan en forma binaria.
Uso común: generalmente se usa para la asignación incondicional de números binarios. Por ejemplo: un número | 1 es equivalente al número impar más cercano al número actual.
3. Bitwise & & (y)
Y, es decir, todos los números y los números objetivo son bit a bit en forma binaria.
Uso común: generalmente se usa para operaciones binarias de toma de bits, como: un número y 1, si el resultado es 0, es un número uniforme, y si es 1, es un número impar.
4. Bitwise Xor^ (Xor)
Exclusivo o significa que todos los números se comparan con el número objetivo en forma binaria. Solo dos números son diferentes, es decir, solo un dígito almacena 1 cuando 1 es 1, y devuelve 0 si dos números son los mismos.
Uso común: la operación inversa de la operación XOR es en sí misma, es decir, el resultado final del número XOR no cambia dos veces. Se puede usar para cifrado simple o operaciones numéricas interactivas.
5. Muévete a la izquierda <<
Mueva a la izquierda, es decir, mueva todos los números hacia la izquierda en forma binaria, mueva el número correspondiente de dígitos, mueva la posición alta (descarte) y llene la posición cero en la posición baja. Mover a la izquierda no afectará el bit de signo.
Significación matemática: en la premisa de que los números no se desbordan, para números positivos y negativos, cambiar a la izquierda uno es equivalente a multiplicar por 2 a la potencia de 1, y cambiar los bits de N izquierdos es equivalente a multiplicar por 2 al poder de n.
6. Muévete a la derecha
6.1 SHIFT RERECHO FIRMADO >>: Es decir, mueva todos los valores a la derecha en forma binaria pero retenga los bits de signo.
Significación matemática: en la premisa de que los números no se desbordan, para los números positivos y negativos, cambiar el derecho uno es equivalente a dividirse en 2 a la primera potencia, y cambiar a la derecha n bits es equivalente a dividirse por 2 al poder n.
6.2 Cambio derecho sin firmar >>>: Es decir, mueva todos los valores, incluidos los bits de signo, a la derecha en forma binaria.
Para números positivos, los resultados son los mismos;
Para números negativos, dado que los números negativos se representan en su complemento de valor absoluto, el resultado del cambio derecho sin firmar será muy grande.
3. Operador booleano
1. Lógico no lógico!
¡La lógica no es útil! Indica que se puede aplicar cualquier tipo de valor con ECMAScript, y la no operación lógica devuelve un valor booleano (verdadero/falso). El operador primero convierte su operando en un valor booleano y luego lo invierte.
! ! Equivalente a la función booleana ().
Un conjunto de reglas para la función de transformación booleana ().
El valor convertido a verdadero se convierte en falso
Booleanttruefalse
Cadena cualquier cadena no vacía "" (cadena vacía)
Número de cualquier valor numérico no cero (incluido Infinity) 0 y Nan
Objeto cualquier objeto nulo
Indefinido sin indefinido
2. Lógica y &&
Hay dos operandos para la lógica y hay dos operandos.
La lógica y las operaciones se pueden aplicar a cualquier tipo de operando, no solo booleanos. Cuando un operando no es un booleano, la lógica y las operaciones no necesariamente devuelven un booleano; En este momento, sigue las siguientes reglas:
1. Si el primer operando es un objeto, se devuelve el segundo operando;
2. Si el segundo operando es un objeto, el objeto solo se devolverá si el resultado de la evaluación del primer operando es verdadero;
3. Si ambos operadores son objetos, se devuelve el segundo operando; Sigue la primera regla.
4. Si un operando es nulo, regresa nulo;
5. Si un operando es nan, devuelve nan;
6. Si un operando está indefinido, se devuelve indefinido.
La lógica y las operaciones son operaciones de cortocircuito, es decir, si el primer operando puede determinar el resultado, entonces el segundo operando no se evaluará nuevamente. (Se puede entender como dos operaciones de retorno internos). Por lo tanto, cuando el conflicto de las Reglas 4, 5 y 6, se sigue el principio de operación de cortocircuito.
La copia del código es la siguiente:
var nul = null;
var na = nan;
prueba var;
test = na && nul;
document.write (prueba); //Yaya
La copia del código es la siguiente:
var nul = null;
var na = nan;
prueba var;
test = nul && na;
document.write (prueba); //nulo
3. Lógico o ||
Lógico o tiene dos operandos.
Lógico o similar a la lógica, las operaciones se pueden aplicar a cualquier tipo de operando, no solo booleanos. En el caso de que un operando no sea un booleano, la lógica u operación no necesariamente devuelve un booleano; En este punto, sigue las siguientes reglas:
1. Si el primer operando es un objeto, se devuelve el primer operando;
2. Si el resultado del primer operando es falso, se devuelve el segundo operando;
3. Si ambos operadores son objetos, se devuelve el primer operando, siguiendo la primera regla.
4. Si ambos operandos son nulos, regresan nulo;
5. Si ambos operandos son nan, devuelve nan;
6. Si ambos operandos están indefinidos, se devuelve indefinido.
La lógica u operación es una operación de cortocircuito, es decir, si el primer resultado de operando es verdadero, entonces el segundo operando no se evaluará nuevamente.
Podemos usar esta propiedad de la lógica o para evitar asignar valores nulos o indefinidos a variables
Por ejemplo: var myObject = FirstObject || SecondObject
Si FirstObject no es nulo, FirstObject se asigna a MyObject, de lo contrario, el valor de SecondObject se asigna a MyObject.
El contenido anterior se trata de este artículo, espero que sea útil para todos.