Operadores lógicos de JavaScript

Los operadores lógicos comparan valores booleanos y devuelven una respuesta booleana. Hay dos tipos de operadores lógicos: Y lógico y O lógico. Estos operadores a menudo se escriben como && para AND y || para OR.

AND lógico (&&)

El operador AND compara dos expresiones. Si la primera se evalúa como "veraz", la declaración devolverá el valor de la segunda expresión. Si la primera se evalúa como "falsa", la declaración devolverá el valor de la primera expresión.

Cuando solo involucra valores booleanos ( trueo false), devuelve verdadero si solo si ambas expresiones son verdaderas. Si una o ambas expresiones son falsas, la declaración completa devolverá falsa.

true && true //returns the second value, true true && false //returns the second value, false false && false //returns the first value, false 123 && 'abc' // returns the second value, 'abc' 'abc' && null //returns the second value, null undefined && 'abc' //returns the first value, undefined 0 && false //returns the first value, 0

OR lógico (||)

El operador OR compara dos expresiones. Si la primera se evalúa como "falsa", la declaración devolverá el valor de la segunda segunda expresión. Si la primera se evalúa como "veraz", la declaración devolverá el valor de la primera expresión.

Cuando solo involucra valores booleanos ( trueo false), devuelve verdadero si alguna de las expresiones es verdadera. Ambas expresiones pueden ser verdaderas, pero solo se necesita una para ser verdadera como resultado.

true || true //returns the first value, true true || false //returns the first value, true false || false //returns the second value, false 123 || 'abc' // returns the first value, 123 'abc' || null //returns the first value, 'abc' undefined || 'abc' //returns the second value, 'abc' 0 || false //returns the second value, false

Evaluación de cortocircuito

&& y || se comportan como operadores de cortocircuito.

En el caso del Y lógico, si el primer operando devuelve falso, el segundo operando nunca se evalúa y se devuelve el primer operando.

En el caso del OR lógico, si el primer valor devuelve verdadero, el segundo valor nunca se evalúa y se devuelve el primer operando.

NO lógico (!)

El operador NOT no hace ninguna comparación como los operadores AND y OR, además se opera solo en 1 operando.

Un '!' (exclamación) se utiliza para representar al operador NOT.

Uso de operadores NOT

  1. conversión de la expresión a booleana.
  2. devuelve el inverso del valor booleano obtenido en el último paso.
var spam = 'rinki'; //spam may be equal to any non empty string var booSpam = !spam; /*returns false since when a non-empty string when converted to boolean returns true inverse of which is evaluated to false. */ var spam2 = ''; //spam2 here is equal to empty string var booSpam2 = !spam2; /*returns true since when a empty string when converted to boolean returns false inverse of which is evaluated to true. */

Consejos:

Ambos operadores lógicos devolverán el valor de la última expresión evaluada. Por ejemplo:

"cat" && "dog" //returns "dog" "cat" && false //returns false 0 && "cat" //returns 0 (which is a falsy value) "cat" || "dog" //returns "cat" "cat" || false //returns "cat" 0 || "cat" //returns "cat"

Tenga en cuenta que donde &&devuelve el primer valor, ||devuelve el segundo valor y viceversa.