JavaScript Comparison and Logical Operators

JavaScript Comparison and Logical Operators

Contenido original de W3Schools


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:

OperadorDescripciónComparaciónDevuelve
==igual ax == 8 x == 5 x == "5"falso verdadero verdadero
===igual valor e igual tipox === 5 x === "5"verdadero falso
!=no igualx != 8verdadero
!==valor no igual o tipo no igualx !== 5 x !== "5" x !== 8falso verdadero verdadero
>mayor quex > 8falso
<menor quex < 8verdadero
>=mayor o igual quex >= 8falso
<=menor o igual quex <= 8verdadero

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:

OperadorDescripciónEjemplo
&&and(x < 10 && y > 1) es verdadero
``or`(x == 5y == 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";

Ver ejemplo

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.

CasoValor
2 < 12verdadero
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";
}

Ver ejemplo


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;

Ver ejemplo

El operador nulo es compatible con todos los navegadores desde marzo de 2020:

ChromeEdgeFirefoxSafariOpera
Chrome 80Edge 80Firefox 72Safari 13.1Opera 67
Feb 2020Feb 2020Jan 2020Mar 2020Mar 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;

Ver ejemplo

El operador de encadenamiento opcional es compatible con todos los navegadores desde marzo de 2020:

ChromeEdgeFirefoxSafariOperab
Chrome 80Edge 80Firefox 72Safari 13.1Opera 67
Feb 2020Feb 2020Jan 2020Mar 2020Mar 2020

Traducido con 💚 desde W3Schools.com

Did you find this article valuable?

Support Santos Romero by becoming a sponsor. Any amount is appreciated!