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
).
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 objetoBoolean
com o valorfalse.
- Segundo, verifique o
falseObj
na condiçãoif
. ComofalseObj
é um objeto, o motor JavaScript "força" o valor a ser considerado comotrue
. Dessa forma, a instrução dentro do blocoif
é 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: