Las palabras anteriores
Los operadores lógicos realizan operaciones booleanas en operandos y a menudo se usan junto con operadores relacionales. Los operadores lógicos combinan múltiples expresiones relacionales en una expresión más compleja. Los operadores lógicos se dividen en tres tipos: lógico no '!', Lógico y '&&', lógico o '||'. Este artículo presentará a estos tres operadores lógicos.
Lógico no lógico
El no operador lógico está representado por una marca de exclamación (!) Y puede aplicarse a cualquier valor en ECMAScript. Independientemente del tipo de datos que este valor sea, este operador devuelve un valor booleano. El no operador lógico primero convierte su operando en un valor booleano y luego lo inversa.
El tipo de conversión de operandos lógicos no pares de pares a tipos booleanos es el mismo que la función de transformación booleana (), excepto que el resultado está invertido al final. Si se usan dos no operadores lógicos al mismo tiempo, el comportamiento de la función de transformación booleana () realmente se simulará.
console.log (!! Undefined); // Falseconsole.log (!! null); // falseconsole.log (!! 0); // falseconsole.log (!!-0); // falseconsole.log (!! nan); // falseconsole.log (!! ''); // falseconsole.log (!!
console.log (!! {}); // trueConsole.log (!! []); // trueConsole.log (!! new boolean (false)); // trueConsole.log (!! falso); // falseconsole.log (!! new Boolean (null)); // trueConsole.log (!! null); // falsoLos no operadores lógicos a menudo se usan para controlar bucles
// La variable booleana (bfund) se usa para registrar si la búsqueda es exitosa. Cuando se encuentra el elemento de datos en la pregunta, Bfound se establecerá en True ,! Bfound igual a False, lo que significa que la ejecución saltará del bucle while var bfound = false; var i = 0; while (! Bfound) {if (avalue [i] == vsearchValues) {bfound = true; } else {i ++; }}Lógica y
La lógica y el operador están representados por dos sumas (&&). Hay dos operandos. El resultado devolverá verdadero solo si ambos operandos son verdaderos, de lo contrario se devolverá falso.
// tabla de verdad logística y (&&), primer operando, segundo resultado de operando verdadero verdadero verdadero verdadero falso falso falso falso
La lógica y las operaciones se pueden aplicar a cualquier tipo de operando, no solo booleanos. Si uno de los operandos no es un booleano, la lógica y las operaciones no necesariamente devuelven un valor booleano
La lógica y las operaciones son operaciones de cortocircuito. Si el primer operando puede determinar el resultado, el segundo operando ya no se evaluará.
Para la lógica, si el primer operando es falso, sin importar qué valor sea el segundo operando, el resultado es falso, entonces se devuelve el primer operando; Si el primer operando es verdadero, entonces el verdadero y falso del resultado es el mismo que el verdadero y el falso del segundo operando, entonces se devuelve el segundo operando.
// Excepto por los siete valores falsos de falsos, indefinidos, nulos, +0, -0, nan y '', el resto son todos valores verdaderos console.log ('t' && ''); // porque 't' es el valor verdadero, devuelve '' console.log ('t' && 'f'); // porque 't' es el valor verdadero, devuelve 'f'console.log (' t '&&' '); // porque 't' es el valor verdadero, devuelve '' console.log ('' && ''); // porque '' es el valor falso, devuelve '' 'console.log (' '&&' '); // porque '' es el valor falso, devuelve '' '' console.log ('' && ''); // porque '' es el valor falso, devuelve '' ''var i = 1; var result = (true && i ++); console.log (resultado, i); // porque verdadero es el valor verdadero, ejecutar i ++, i es 2, el resultado es 1var i = 1; var result = (false && i ++); console.log (resultado, i); // porque el falso valor es el valor falso, i es 1, el resultado es el resultado falso es
La lógica y los operadores se pueden usar de múltiples maneras, devolviendo el valor de la primera expresión booleana con falso
console.log (true && 'foo' && '' && 4 && 'foo' && true); // ''
La prioridad de los operadores relacionales es mayor que la de la lógica y (&&) y la lógica o (||), por lo que se pueden escribir expresiones similares directamente sin agregar paréntesis.
if (a+1 == 2 && b+2 == 3) {// tODO}La lógica y los operadores se pueden usar en lugar de si la estructura
if (a == b) {dosomething ();} // es equivalente a (a == b) && dosomething ();La lógica y los operadores a menudo se usan en funciones de devolución de llamada
// Si el valor no se pasa al parámetro A, a es el predeterminado indefinido y es un valor falso, por lo que a () no se ejecuta para evitar errores. Si el valor se pasa al parámetro a, la función a () función fn (a) {if (a) {a (); }} // equivalente a la función fn (a) {a && a ();}Lógico o
El lógico u operador está representado por dos líneas verticales (||). Hay dos operandos. Solo cuando ambos operandos sean falsos, el resultado devolverá falso, de lo contrario, se devolverá verdadero.
// tabla de verdad logística o (||), primer operando, segundo resultado de operando verdadero verdadero verdadero falso verdadero verdadero falso falso falso
Del mismo modo, la lógica u operaciones se pueden aplicar a cualquier tipo de operando, no solo booleanos. Si uno de los operandos no es un booleano, la lógica u operación no necesariamente devuelve un valor booleano
La lógica u operación también es una operación de cortocircuito. Si el primer operando puede determinar el resultado, el segundo operando ya no se evaluará.
Para la lógica o, si el primer operando es verdadero, el resultado es verdadero independientemente del valor del segundo operando, y se devuelve el primer operando; Si el primer operando es falso, el verdadero y falso del resultado son los mismos que el verdadero y el falso del segundo operando, se devuelve el segundo operando.
console.log ('t' || ''); // porque 't' es el valor verdadero, devuelve "t" console.log ('t' || 'f'); // porque 't' es el valor verdadero, devuelve "t" console.log ('' '||' f '); // porque' 'es el valor falso, devuelve "f" console.log (' '' || '); Devuelve ""var i = 1; var result = (true || i ++); console.log (resultado, i); // porque el verdadero es el valor verdadero, i ++ no se ejecuta, el resultado es verdadero, i es 1var i = 1; var result = (falso || i ++); console.log (resultado, i); // porque el falso valor es el valor falso, i es 2, el resultado es 1 es 1 es 1 es 1 es 1 es 1 es 1 es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1, es 1.
Del mismo modo, la lógica u operadores se pueden usar en múltiples concatenaciones para devolver el valor de la primera expresión booleana.
console.log (falso || 0 || '' || 4 || 'foo' || verdadero); // 4
Lógicos u operadores a menudo se usan para establecer valores predeterminados para variables
// Si no se pasa ningún objeto al parámetro P, el parámetro se establece en un objeto vacío de función predeterminada fn (p) {p = p || {};}Lo anterior es el análisis completo del operador JavaScript: operadores lógicos que le ofrece el editor. Espero que todos apoyen a Wulin.com ~