Guía JavaScript 1.5:Operadores:Operadores lógicos
De MDC
[editar] Operadores lógicos
Los operadores lógicos son generalmente empleados con valores lógicos (booleanos); estos operadores devuelven un valor booleano. Sin embargo, los operadores && y || realmente devuelven el valor de uno de sus operandos, por esto si se emplean con valores no booleanos, podrían devolver un valor no booleano. Los operadores lógicos se describen en la siguiente tabla.
| Operador | Uso | Descripción |
|---|---|---|
| && | expr1 && expr2 | (AND lógico) Devuelve expr1 si la expresión puede convertirse a falso; de otro modo, devuelve expr2. Cuando se emplea con valores booleanos, && devuelve true cuando ambos operandos son verdaderos; si no, devuelve false. |
| || | expr1 || expr2 | (OR lógico) Devuelve expr1 si puede convertirse a verdadero; de otro modo devuelve expr2. Cuando se emplea con valores booleanos, el operador || devuelve true si alguno de los operandos es verdadero; si ambos operandos son falsos devuelve false. |
| ! | !expr | (NOT lógico) Devuelve falso si su único operando puede convertirse a verdadero; de otro modo, devuelve verdadero. |
Tabla 3.7: Operadores lógicos
Ejemplos de expresiones que pueden convertirse a falso son las que evalúan a null, 0, la cadena vacia (""), o undefined (no definido).
El siguiente código muestra ejemplos del uso del operador && (AND lógico).
a1=true && true // t && t devuelve true a2=true && false // t && f devuelve false a3=false && true // f && t devuelve false a4=false && (3 == 4) // f && f devuelve false a5="Gato" && "Perro" // t && t devuelve Perro a6=false && "Gato" // f && t devuelve false a7="Gato" && false // t && f devuelve false
El siguiente código muestra ejemplos del uso del operador || (OR lógico).
o1=true || true // t || t devuelve true o2=false || true // f || t devuelve true o3=true || false // t || f devuelve true o4=false || (3 == 4) // f || f devuelve false o5="Gato" || "Perro" // t || t devuelve Gato o6=false || "Gato" // f || t devuelve Gato o7="Gato" || false // t || f devuelve Gato
El siguiente código muestra ejemplos del uso del operador ! (NOT lógico).
n1=!true // !t devuelve false n2=!false // !f devuelve true n3=!"Gato" // !t devuelve false
[editar] Evaluación cortocircuiteada
Como las expresiones lógicas son evaluadas de izquierda a derecha, deben ser probadas por posibles evaluaciones con cortocircuito usando las siguientes reglas:
-
false&& LoQueSea está cortocircuiteada evaluandose a false. -
true|| LoQueSea está cortocircuiteada evaluandose a true.
Las reglas de la lógica garantizan que estas evaluaciones siempre sean correctas. Nótese que la parte LoQueSea de las expresiones dadas no se llega a evaluar, por lo que como no toman partido no tienen nigún efecto secundario.