Comparação JavaScript e Operadores Lógicos
Os operadores de comparação e lógicos são usados para testar true
ou
false
.
Operadores de comparação
Os operadores de comparação são usados em instruções lógicas para determinar a igualdade ou diferença entre variáveis ou valores.
Diante disso x = 5
, a tabela abaixo explica os operadores de comparação:
Operator | Description | Comparing | Returns | Try it |
---|---|---|---|---|
== | equal to | x == 8 | false | |
x == 5 | true | |||
x == "5" | true | |||
=== | equal value and equal type | x === 5 | true | |
x === "5" | false | |||
!= | not equal | x != 8 | true | |
!== | not equal value or not equal type | x !== 5 | false | |
x !== "5" | true | |||
x !== 8 | true | |||
> | greater than | x > 8 | false | |
< | less than | x < 8 | true | |
>= | greater than or equal to | x >= 8 | false | |
<= | less than or equal to | x <= 8 | true |
Como pode ser usado
Os operadores de comparação podem ser usados em instruções condicionais para comparar valores e agir dependendo do resultado:
if (age < 18) text = "Too young to buy alcohol";
Você aprenderá mais sobre o uso de instruções condicionais no próximo capítulo deste tutorial.
Operadores lógicos
Os operadores lógicos são usados para determinar a lógica entre variáveis ou valores.
Dado que x = 6
e y = 3
, a tabela abaixo explica os operadores lógicos:
Operator | Description | Example | Try it |
---|---|---|---|
&& | and | (x < 10 && y > 1) is true | |
|| | or | (x == 5 || y == 5) is false | |
! | not | !(x == y) is true |
Operador condicional (ternário)
JavaScript também contém um operador condicional que atribui um valor a uma variável com base em alguma condição.
Sintaxe
variablename = (condition) ? value1:value2
Exemplo
let voteable = (age < 18) ? "Too young":"Old enough";
Se a variável idade for um valor abaixo de 18, o valor da variável voteable será "Too young", caso contrário o valor de voteable será "Old enough".
Comparando Diferentes Tipos
Comparar dados de tipos diferentes pode fornecer resultados inesperados.
Ao comparar uma string com um número, o JavaScript converterá a string em um número ao fazer a comparação. Uma string vazia é convertida em 0. Uma string não numérica é convertida em NaN
que é sempre false
.
Case | Value | Try |
---|---|---|
2 < 12 | true | |
2 < "12" | true | |
2 < "John" | false | |
2 > "John" | false | |
2 == "John" | false | |
"2" < "12" | false | |
"2" > "12" | true | |
"2" == "12" | false |
Ao comparar duas strings, "2" será maior que "12", porque (em ordem alfabética) 1 é menor que 2.
Para garantir um resultado adequado, as variáveis devem ser convertidas para o tipo adequado antes da comparação:
age = Number(age);
if (isNaN(age)) {
voteable = "Input is not a number";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}