Operadores de comparación

Los operadores de comparación comparan los valores de dos operandos y evalúan que forman es true o false. En el siguiente ejemplo, se usa la operador de igualdad estricta (===) para comparar dos operandos: la expresión 2 + 2 y el valor 4. Como el resultado de la expresión y el número 4 son iguales, esta expresión se evalúa como true:

2 + 2 === 4
> true

Coerción e igualdad de tipos

Dos de los operadores de comparación más usados son == para la igualdad baja y === para una igualdad estricta. == realiza una comparación flexible entre dos valores coercionando los operandos para que coincidan con tipos de datos, si es posible. Para Por ejemplo, 2 == "2" muestra true, aunque se esté haciendo la comparación. entre un valor numérico y un valor de cadena.

2 == 2
> true

2 == "2"
> true

Lo mismo sucede con !=, que muestra true solo si los operandos que se en comparación no son iguales de forma flexible.

2 != 3
> true

2 != "2"
> false

Las comparaciones estrictas que usan === o !== no realizan la coerción de tipo. Para un una comparación estricta para evaluar como true, los valores que se comparan deben tener lo siguiente: mismo tipo de datos. Por este motivo, 2 == "2" muestra true, pero 2 === "2". muestra false:

2 === 3
> false

2 === "2"
> false

Para quitar cualquier ambigüedad que pueda resultar de la coerción automática, usa === siempre que sea como sea posible.

Operador Descripción Uso Resultado
=== Estrictamente igual 2 === 2 verdadero
!== No es estrictamente igual 2 !== "2" verdadero
== Igual (o "libremente igual") 2 == “2” verdadero
!= No igual 2 != "3" verdadero
> Mayor que 3) (2) verdadero
>= Mayor o igual que 2 >= 2 verdadero
< Menor que 2) (3) verdadero
<= Menor o igual que 2 <= 3 verdadero

Verdaderos y falsos

Todos los valores en JavaScript son true o false de manera implícita, y se pueden forzar a el valor booleano correspondiente (por ejemplo, mediante el uso del parámetro "loosely equal" comparador. Un conjunto limitado de valores se fuerza a false:

  • 0
  • null
  • undefined
  • NaN
  • Una cadena vacía ("")

Todos los demás valores se coercionan a true, incluida cualquier cadena que contenga uno o más. caracteres y todos los números que no sean cero. Por lo general, se los llama "verdad" y "falso" de salida.

"My string" == true
> true

100 == true
> true

0 == true
> false

Operadores lógicos

Usa los operadores lógicos AND (&&), OR (||) y NOT (!) para controlar el flujo de una secuencia de comandos según la evaluación de dos o más sentencias condicionales:


2 === 3 || 5 === 5;
> true

2 === 2 && 2 === "2"
> false

2 === 2 && !"My string."
> false

Una expresión NOT (!) lógica niega el valor veracoso o falso de un operando, y evalúa como true si el operando se evalúa como false, y false si el operando se evalúa como true:


true
> true

!true
> false

!false
> true

Usar el operador lógico NOT (!) frente a otro tipo de datos, como un o una cadena, fuerza ese valor a booleano y revierte la fórmula falso del resultado.

"string"
> "string"

!"string"
> false

0
> 0

!0
> true

Es una práctica común usar dos operadores NOT para coercionar rápidamente los datos a su valor booleano coincidente:

!!"string"
> true

!!0
> false

Los operadores lógicos AND y OR no realizan ninguna coerción por sí mismos. Ellas devuelve el valor de uno de los dos operandos evaluados, con el valor elegido el operando determinado determinado por esa evaluación.

La lógica AND (&&) muestra el primero de sus dos operandos solo si ese operando se evalúa como false y, de lo contrario, el segundo operando. En las comparaciones que evalúa como valores booleanos, muestra true solo si los operandos en ambos lados del operador lógico AND que se evalúa como true. Si alguno de los lados se evalúa como false, muestra false.

true && false
> false

false && true
> false

false && false
> false

true && true
> true

Cuando se usa && con dos operandos no booleanos, se muestra el primer operando. sin cambios si se puede forzar a false. Si el primer operando se puede forzar en true, el segundo operando se muestra sin cambios:

false && "My string"
> false

null && "My string"
> null

"My string" && false
> false

"My string" && "My second string"
> "My second string"

2 === 2 && "My string"
> "My string"

El operador lógico OR (||) muestra el primero de sus dos operandos solo si ese operando se evalúa como true y, de lo contrario, el segundo operando. En las comparaciones que evalúas en valores booleanos, esto significa que muestra true si cualquiera de los operandos se evalúa como true, y si ninguno de los lados se evalúa como true, muestra false

true || false
> true

false || true
> true

true || true
> true

false || false
> false

Cuando se usa || con dos operandos no booleanos, se muestra el primer operando sin cambios si se puede forzar a true. Si el primer operando se puede forzar en false, el segundo operando se muestra sin cambios:

false || "My string"
> "My string"

null || "My string"
> "My string"

"My string" || false
> "My string"

"My string" || "My second string"
> "My string"

2 === 2 || "My string"
> true

Operador coalescente nulo

Presentada en ES2020, el "operador coalescente nulo" (??) muestra el primer operando solo si ese el operando tiene cualquier valor diferente de null o undefined. De lo contrario, muestra el segundo operando.

null ?? "My string"
> "My string"

undefined ?? "My string"
> "My string"

true ?? "My string";
> true

?? es similar a un OR lógico, pero más estricto en cuanto a cómo es el primer operando y cómo se evalúa. || muestra el segundo operando para cualquier expresión que se puede se convirtió en false, lo que incluye undefined y null. ?? muestra el segundo cuando el primer operando no sea null ni undefined, incluso si se podría forzar a false:

0 ?? "My string";
> 0

false ?? "My string";
> false

undefined ?? "My string";
> "My string"

Operadores de asignación lógicos

Usa operadores de asignación para asignar el valor de un segundo operador a un primero como "autor" y "título" usando un operador lógico. El ejemplo más común es un signo igual (=), que se usa para asignar un valor a una variable declarada.

Usar operadores de asignación lógicos para asignar un valor a una variable de forma condicional basadas en el valor verdadero o falso de esa variable.

El operador lógico de asignación AND (&&=) evalúa el segundo operando y asigna al primer operando si el valor solo si el primer operando evaluaría como true (efectivamente, "si el primer operando es verdadero, asígnale el valor del el segundo operando:"

let myVariable = false;
myVariable
&&= 2 + 2;
> false

myVariable
= true;
myVariable
&&= 2 + 2;
> 4

El valor verdadero o falso del primer operando determina si una asignación de que ocurra la evaluación. Sin embargo, intentar evaluar el primer operando usando una comparación el operador genera un valor booleano true o false, al que no se le puede asignar una valor:

let myVariable = 5;
myVariable
> 2 &&= "My string"
> SyntaxError: Invalid left-hand side in assignment

El operador lógico de asignación OR (||=) evalúa el segundo operando y asignar al primer operando si este se evalúa como false, efectivamente "si el primer operando es falso, asígnale el valor del segundo operando:"

let myVariable = false;
myVariable
||= 2 + 2;
> 4

myVariable
= true;
myVariable
||= 2 + 2;
> true

Verifica tus conocimientos

¿Qué operador indica “estrictamente igual”?

===
=
==
!=