Operadores de comparação JavaScript

Resumo : neste tutorial, você aprenderá como usar operadores de comparação JavaScript para comparar dois valores.

Introdução aos operadores de comparação JavaScript

Para comparar dois valores, você usa um operador de comparação. A tabela a seguir mostra os operadores de comparação em JavaScript:

Operador Significado
< menor que
> Maior que
<= menos que ou igual a
>= Melhor que ou igual a
== igual a
!= não é igual a

Um operador de comparação retorna um valor booleano que indica se a comparação é verdadeira ou não. Veja o exemplo a seguir:

let r1 = 20 > 10; // true
let r2 = 20 < 10; // false
let r3 = 10 == 10; // trueLinguagem de código:  JavaScript  ( javascript )
Operadores de comparação Javascript

Um operador de comparação assume dois valores. Se os tipos de valores não forem comparáveis, o operador de comparação os converte em valores de tipos comparáveis ​​de acordo com regras específicas.

Compare números

Se os valores forem números, os operadores de comparação realizarão uma comparação numérica. Por exemplo:

let a = 10, 
    b = 20; 

console.log(a >= b);  // false
console.log(a == 10); // trueLinguagem de código:  JavaScript  ( javascript )

Este exemplo é direto. A variável aé 10, bé 20. A expressão a >= b expressão retorna falsee a expressão a == 10 expressão retorna  true.

Comparar strings

Se os operandos forem strings, o JavaScript compara numericamente os códigos de caracteres, um por um, na string.

let name1 = 'alice',
    name2 = 'bob';    

let result = name1 < name2;
console.log(result); // true
console.log(name1 == 'alice'); // trueLinguagem de código:  JavaScript  ( javascript )

Como o JavaScript compara numericamente os códigos de caracteres nas strings, você pode receber um resultado inesperado, por exemplo:

let f1 = 'apple',
    f2 = 'Banana';
let result = f2 < f1;
console.log(result); // trueLinguagem de código:  JavaScript  ( javascript )

Neste exemplo, f2é menor que f1porque a letra Bpossui o código do caractere 66enquanto a letra apossui o código do caractere 97.

Para corrigir isso, você precisa:

  • Primeiro, converta as strings em um formato comum, seja minúscula ou maiúscula
  • Segundo, compare os valores convertidos

Por exemplo:

let f1 = 'apple',
    f2 = 'Banana';

let result = f2.toLowerCase() < f1.toLowerCase();
console.log(result); // falseLinguagem de código:  JavaScript  ( javascript )

Observe que the toLowerCase()é um método do objeto String que converte a string em minúsculas.

Compare um número com um valor de outro tipo

Se um valor for um número e o outro não, o operador de comparação converterá o valor não numérico em um número e os comparará numericamente. Por exemplo:

console.log(10 < '20'); // trueLinguagem de código:  JavaScript  ( javascript )

Neste exemplo, o operador de comparação converte a string '20'em um número 20e compara com o número 10. Aqui está um exemplo:

console.log(10 == '10'); // trueLinguagem de código:  JavaScript  ( javascript )

Neste exemplo, o operador de comparação converte a string '10' em um número 10e os compara numericamente.

Compare um objeto com um não-objeto

Se um valor for um objeto, o  valueOf()método desse objeto será chamado para retornar o valor para comparação. Se o objeto não tiver o valueOf()método, o toString()método será chamado. Por exemplo:

let apple = {
  valueOf: function () {
    return 10;
  },
};

let orange = {
  toString: function () {
    return '20';
  },
};
console.log(apple > 10); // false
console.log(orange == 20); // true
Linguagem de código:  JavaScript  ( javascript )

Nesta primeira comparação, o appleobjeto possui o valueOf()método que retorna 10. Portanto, o operador de comparação utiliza o número 10 para comparação.

Na segunda comparação, o JavaScript primeiro chama o valueOf()método. No entanto, o orangeobjeto não possui o valueOf()método. Portanto, o JavaScript chama o toString()método para obter o valor retornado 20para comparação.

Compare um booleano com outro valor

Se um valor for booleano, o JavaScript o converte em um número e compara o valor convertido com o outro valor; trueé convertido para 1e falseé convertido para 0. Por exemplo:

console.log(true > 0); // true
console.log(false < 1); // true
console.log(true > false); // true
console.log(false > true); // false
console.log(true >= true); // true
console.log(true <= true); // true
console.log(false <= false); // true
console.log(false >= false); // trueLinguagem de código:  JavaScript  ( javascript )

Além das regras acima, os operadores igual ( ==) e diferente ( !=) também possuem as seguintes regras.

Comparar nulleundefined

Em JavaScript, nullé igual a undefined. Isso significa que a seguinte expressão retorna true.

console.log(null == undefined); // trueLinguagem de código:  JavaScript  ( javascript )

Compare NaNcom outros valores

Se qualquer um dos valores for NaN, então o operador igual( ==) retornará false.

console.log(NaN == 1); // falseLinguagem de código:  JavaScript  ( javascript )

Até

console.log(NaN == NaN); // falseLinguagem de código:  JavaScript  ( javascript )

!=O operador diferente ( ) retorna trueao comparar NaNcom outro valor:

console.log(NaN != 1); // trueLinguagem de código:  JavaScript  ( javascript )

E também

console.log(NaN != NaN); // trueLinguagem de código:  JavaScript  ( javascript )

Igual estrito ( ===) e não igual estrito ( !==)

Além dos operadores de comparação acima, o JavaScript fornece operadores de igualdade estrita ( ===) e não de igualdade estrita ( !==).

Operador Significado
=== estritamente igual
!== não estritamente igual

Os operadores estritamente iguais e não estritamente iguais se comportam como os operadores iguais e diferentes, exceto que não convertem o operando antes da comparação. Veja o exemplo a seguir:

console.log("10" == 10); // true
console.log("10" === 10); // falseLinguagem de código:  JavaScript  ( javascript )

Na primeira comparação, como utilizamos o operador de igualdade, o JavaScript converte a string em um número e realiza a comparação.

Porém, na segunda comparação, usamos o operador de igualdade estrita ( ===), o JavaScript não converte a string antes da comparação, portanto o resultado é false.

Neste tutorial, você aprendeu como usar os operadores de comparação JavaScript para comparar valores.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *