Normalmente, os booleanos são valores primitivos criados a partir de literais:
var x = false;
Mas os booleanos também podem ser definidos como objetos com a palavra-chave new:
var y = new Boolean(false);
var x = false;
var y = new Boolean(false);
// typeof x retorna "boolean"
// typeof y retorna "object"
Objetos Boolean() diminuem a velocidade de execução.
A palavra-chave new complica o código. Isso pode produzir alguns resultados inesperados:
Ao usar o == operador, booleanos iguais são iguais:
var x = false;
var y = new Boolean(false);
// (x == y) é verdadeiro porque x e y têm valores iguais
Ao usar o ===operador, booleanos iguais não são iguais, porque o ===operador espera igualdade no tipo e no valor.
var x = false;
var y = new Boolean(false);
// (x === y) é falso porque x e y têm tipos diferentes
Ou pior ainda. Objetos não podem ser comparados:
var x = new Boolean(false);
var y = new Boolean(false);
// (x == y) é falso porque objetos não podem ser comparados
Observe a diferença entre (x == y) e (x === y).
Comparar dois objetos JavaScript sempre retornará false.
Operadores de Comparação
Os operadores de comparação lógica são usados para avaliar se uma determinada condição é verdadeira ou falsa.
São usados em instruções lógicas para determinar a igualdade ou diferença entre variáveis ou valores.
Dado var x = 5, a tabela abaixo explica os operadores de comparação.
Operador |
Descrição |
Comparação |
Retorna |
== |
valor igual independente de tipo |
x == 8 x == 5 x == "5" |
false true true |
=== |
valor igual e tipo igual |
x === 5 x === "5" |
true false |
!= |
valor diferente |
x != 8 |
true |
!== |
valor diferente e tipo diferente |
x !== 5 x !== "5" x !== 8 |
false true true |
> |
maior |
x > 8 |
false |
< |
menor |
x < 8 |
true |
>= |
maior ou igual |
x >= 8 |
false |
<= |
menor ou igual |
x <= 8 |
true |
Como Pode Ser Usado
Os operadores de comparação podem ser usados em instruções condicionais para comparar valores e executar ações, dependendo do resultado:
var texto; if (idade < 18) texto = "Muito novo";
Você aprenderá mais sobre o uso de instruções condicionais no próximo capítulo deste tutorial.
Operadores lógicos
Operadores lógicos são usados para determinar a lógica entre variáveis ou valores.
Dados var x = 6 e var y = 3, a tabela abaixo explica os operadores lógicos.
Operador |
Descrição |
Exemplo |
&& |
e |
(x < 10 && y > 1) é verdadeiro (true) |
|| |
ou |
(x == 5 || y == 5) é falso (false) |
! |
negação |
!(x == y) é verdadeiro (true) |
Operador Condicional Ternário
O operador condicional ? atribui um valor a uma variável com base em alguma condição.
Sintaxe: var nomeVariavel = (conndicao) ? valor1 : valor2;
var elegivel = (idade < 18) ? "Não elegível" : "Elegível";
Se a variável idade for um valor abaixo de 18, o valor da variável votável será "Muito jovem", caso contrário, o valor da variável votável será "Velho o suficiente".
Comparando Tipos Diferentes
Comparar dados de diferentes tipos pode gerar resultados inesperados.
Ao comparar uma sequência com um número, o JavaScript converterá a sequência em um número ao fazer a comparação. Uma cadeia vazia é convertida em 0. Uma cadeia não numérica é convertida na NaNqual é sempre false.
Case |
Value |
2 < 12 |
true |
2 < "12" |
true |
2 < "João" |
false |
2 > "João" |
false |
2 == "João" |
false |
"2" < "12" |
false |
"2" > "12" |
true |
"2" == "12" |
False |
Ao comparar duas cordas, "2" será maior que "12", porque (alfabeticamente) 1 é menor que 2.
Para garantir um resultado adequado, as variáveis devem ser convertidas no tipo adequado antes da comparação:
var idade = Number(idadeStr);
var elegivel;
if (isNaN(idade)) {
elegível = "A entrada não é um número.";
} else {
elegível = (idade < 18) ? "Não elegível" : "Elegível";
}
Teste-se com exercícios
Escolha o operador de comparação correto para a variável b assumir o valor true, quando x for maior que y.
var x = 10; var y = 5; var b = (x [ ] y); // b === true