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; // true
Linguagem de código: JavaScript ( 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); // true
Linguagem de código: JavaScript ( javascript )
Este exemplo é direto. A variável a
é 10
, b
é 20
. A expressão a >= b
expressão retorna false
e 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'); // true
Linguagem 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); // true
Linguagem de código: JavaScript ( javascript )
Neste exemplo, f2
é menor que f1
porque a letra B
possui o código do caractere 66
enquanto a letra a
possui 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); // false
Linguagem 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'); // true
Linguagem de código: JavaScript ( javascript )
Neste exemplo, o operador de comparação converte a string '20'
em um número 20
e compara com o número 10. Aqui está um exemplo:
console.log(10 == '10'); // true
Linguagem de código: JavaScript ( javascript )
Neste exemplo, o operador de comparação converte a string '10'
em um número 10
e 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 apple
objeto 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 orange
objeto não possui o valueOf()
método. Portanto, o JavaScript chama o toString()
método para obter o valor retornado 20
para 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 1
e 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); // true
Linguagem de código: JavaScript ( javascript )
Além das regras acima, os operadores igual ( ==
) e diferente ( !=
) também possuem as seguintes regras.
Comparar null
eundefined
Em JavaScript, null
é igual a undefined
. Isso significa que a seguinte expressão retorna true
.
console.log(null == undefined); // true
Linguagem de código: JavaScript ( javascript )
Compare NaN
com outros valores
Se qualquer um dos valores for NaN
, então o operador igual( ==
) retornará false
.
console.log(NaN == 1); // false
Linguagem de código: JavaScript ( javascript )
Até
console.log(NaN == NaN); // false
Linguagem de código: JavaScript ( javascript )
!=
O operador diferente ( ) retorna true
ao comparar NaN
com outro valor:
console.log(NaN != 1); // true
Linguagem de código: JavaScript ( javascript )
E também
console.log(NaN != NaN); // true
Linguagem 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); // false
Linguagem 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.