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