Los operadores lógicos y de comparación se utilizan para probar si es verdadero o falso.
Operadores de comparación
Los operadores de comparación se utilizan en declaraciones lógicas para determinar la igualdad o diferencia entre variables o valores.
Dado que x = 5
, la siguiente tabla explica los operadores de comparación:
Operador | Descripción | Comparación | Devuelve |
== | igual a | x == 8 x == 5 x == "5" | falso verdadero verdadero |
=== | igual valor e igual tipo | x === 5 x === "5" | verdadero falso |
!= | no igual | x != 8 | verdadero |
!== | valor no igual o tipo no igual | x !== 5 x !== "5" x !== 8 | falso verdadero verdadero |
> | mayor que | x > 8 | falso |
< | menor que | x < 8 | verdadero |
>= | mayor o igual que | x >= 8 | falso |
<= | menor o igual que | x <= 8 | verdadero |
Como puede ser usado
Los operadores de comparación se pueden utilizar en declaraciones condicionales para comparar valores y tomar medidas según el resultado:
if (age < 18) text = "Too young to buy alcohol";
Aprenderás más sobre el uso de declaraciones condicionales en el próximo capítulo de este tutorial.
Operadores lógicos
Los operadores lógicos se utilizan para determinar la lógica entre variables o valores.
Dado que x = 6
y y = 3
, la siguiente tabla explica los operadores lógicos:
Operador | Descripción | Ejemplo | ||||
&& | and | (x < 10 && y > 1) es verdadero | ||||
` | ` | or | `(x == 5 | y == 5)` es falso | ||
! | not | !(x == y) es verdadero |
Operador condicional (ternario)
JavaScript también contiene un operador condicional que asigna un valor a una variable en función de alguna condición.
Sintaxis
variablename = (condition) ? value1:value2
Ejemplo
let voteable = (age < 18) ? "Too young":"Old enough";
Si la variable age
tiene un valor menor a 18 años, el valor de la variable votable
será "Too young
"; de lo contrario, el valor de votable
será "Old enough
".
Comparando diferentes tipos
La comparación de datos de diferentes tipos puede dar resultados inesperados.
Al comparar una cadena con un número, JavaScript convertirá la cadena en un número al realizar la comparación. Una cadena vacía se convierte en 0. Una cadena no numérica se convierte en NaN
, que siempre es falso.
Caso | Valor |
2 < 12 | verdadero |
2 < "12" | verdadero |
2 < "John" | falso |
2 > "John" | falso |
2 == "John" | falso |
"2" < "12" | falso |
"2" > "12" | verdadero |
"2" == "12" | falso |
Al comparar dos cadenas, "2" será mayor que "12", porque (alfabéticamente) 1 es menor que 2.
Para garantizar un resultado adecuado, las variables se deben convertir al tipo adecuado antes de la comparación:
Ejemplo:
age = Number(age);
if (isNaN(age)) {
voteable = "Input is not a number";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}
El operador coalescente nulo (??)
El ??
El operador devuelve el primer argumento si no es nulo (nulo o indefinido).
De lo contrario, devuelve el segundo argumento.
Ejemplo:
let name = null;
let text = "missing";
let result = name ?? text;
El operador nulo es compatible con todos los navegadores desde marzo de 2020:
Chrome | Edge | Firefox | Safari | Opera |
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Feb 2020 | Feb 2020 | Jan 2020 | Mar 2020 | Mar 2020 |
El operador de encadenamiento opcional (?.)
El ?.
El operador devuelve undefined
si un objeto no está undefined
o es null
(en lugar de generar un error).
Ejemplo:
// Create an object:
const car = {type:"Fiat", model:"500", color:"white"};
// Ask for car name:
document.getElementById("demo").innerHTML = car?.name;
El operador de encadenamiento opcional es compatible con todos los navegadores desde marzo de 2020:
Chrome | Edge | Firefox | Safari | Operab |
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Feb 2020 | Feb 2020 | Jan 2020 | Mar 2020 | Mar 2020 |
Traducido con 💚 desde W3Schools.com