Booleano (Boolean) do JavaScript

Nesse tutorial você vai aprender sobre o objeto Booleano (Boolean)e as diferenças entre o objeto e o tipo primitivo booleano (boolean).

Ricardo Reis
4 min readMay 11, 2020

--

English version: https://www.javascripttutorial.net/javascript-boolean/

O tipo primitivo boolean no JavaScript

O JavaScript fornece um tipo primitivo boolean que tem dois valores true e false.

O exemplo a seguir declara duas variáveis que guardam valores booleanos false e true:

Quando você aplica o operador typeof a uma variável que contêm um valor booleano primitivo, você obtém o boolean como no exemplo a seguir:

O objeto Boolean no JavaScript

Além do tipo primitivo booleano, o JavaScript também fornece a função global Boolean(), com a letra B em maíuscula para converter um valor de outro tipo em boolean.

O exemplo a seguir mostra como você usa a função Boolean() para converter uma string em um valor booleano. Devido a string não estar vazia, ela retorna true.

O Boolean também é um objeto de wrapper (um envelope) do tipo primitivo boolean. Isso significa que, quando você usa o construtor Booleano e passa true ou false, cria um objeto Booleano.

Para obter o valor primitivo, chame o método valueOf() do objeto Booleano, como a seguir:

No entanto, se você chamar o método toString() do objeto Booleano, você obterá a string true ou false. Veja no exemplo:

Boolean vs. boolean

Considere o exemplo:

Primeiro, bar é um objeto então você pode adicionar uma propriedade ao objeto bar.

No entanto, você não pode fazer o mesmo com a variável booleana primitiva foo.

Segundo, o typeof do objeto Boolean retorna object, enquanto o typeof de um booleano primitivo retorna o valor boolean.

Terceiro, quando aplicado o operador instanceof a um objeto Boolean, retorna true. No entanto retorna false se aplicar o operador instanceof a um valor booleano.

É uma boa prática nunca usar o objeto Boolean pois ele poderá criar confusões, especialmente quando você o usa em uma expressão. Veja o exemplo a seguir:

Como esse script funciona:

  • Primeiro, crie falseObj como um wrapper de objeto Boolean com o valor false.
  • Segundo, verifique o falseObj na condição if. Como falseObj é um objeto, o motor JavaScript "força" o valor a ser considerado como true. Dessa forma, a instrução dentro do bloco if é executada.

A tabela a seguir resume as diferenças entre Boolean (objeto) e o boolean (tipo primitivo):

Operador            |   boolean   |   Boolean 
--------------------+-------------+------------
typeof | boolean | object
--------------------+-------------+------------
instanceof Boolean | false | true

É recomendável que você use a função Boolean() para converter um valor de um tipo diferente para um tipo Boolean mas nunca deveria usar o Boolean como um objeto wrapper de um valor booleano primitivo.

Nesse tutorial você aprendeu sobre o objeto JavaScript Boolean e a diferença entre esse objeto e o tipo primitivo boolean.

Veja o índice de todos os tutoriais JavaScript

Confira uma série de outros tutoriais JavaScript que eu escrevi, clicando no link abaixo:

--

--