Booleano JavaScript

Resumo : neste tutorial você aprenderá sobre o Booleanobjeto JavaScript e as diferenças entre o Booleanobjeto e o  booleantipo primitivo.

Tipo primitivo booleano JavaScript

JavaScript fornece um tipo primitivo booleano que possui dois valores de truee false. O exemplo a seguir declara duas variáveis ​​que contêm valores booleanos de falsee true:

let isPending = false;
let isDone = true;Linguagem de código:  JavaScript  ( javascript )

Ao aplicar o   typeofoperador a uma variável que contém um valor booleano primitivo, você obtém o booleanseguinte exemplo:

console.log(typeof(isPending)); //  boolean
console.log(typeof(isDone)); // booleanLinguagem de código:  JavaScript  ( javascript )

Objeto Booleano JavaScript

Além do booleantipo primitivo, o JavaScript também fornece a Boolean() função global, com a letra Bmaiúscula, para converter um valor de outro tipo paraboolean.

O exemplo a seguir mostra como usar a Boolean()função para converter uma string em um valor booleano. Como a string não está vazia, ela retorna true.

let a = Boolean('Hi');
console.log(a); // true
console.log(typeof(a)); // booleanLinguagem de código:  JavaScript  ( javascript )

O Booleantambém é um objeto wrapper do booleantipo primitivo. Isso significa que quando você passa trueou falsepara o Booleanconstrutor, ele criará um Booleanobjeto. Por exemplo:

let b = new Boolean(false);Linguagem de código:  JavaScript  ( javascript )

Para recuperar o valor primitivo, você chama o valueOf()método do Booleanobjeto da seguinte maneira:

console.log(b.valueOf()); // falseLinguagem de código:  JavaScript  ( javascript )

No entanto, se você chamar o toString()método de um Booleanobjeto, obterá um valor de string  "true"ou "false". Por exemplo:

console.log(b.toString()); // "false"Linguagem de código:  JavaScript  ( javascript )

JavaScript booleano vs. booleano

Considere este exemplo:

let completed = true;
let active = new Boolean(false);Linguagem de código:  JavaScript  ( javascript )

Primeiro, activeé um objeto para que você possa adicionar uma propriedade a ele:

active.primitiveValue = active.valueOf();
console.log(active.primitiveValue); // falseLinguagem de código:  JavaScript  ( javascript )

No entanto, você não pode fazer isso com a variável booleana primitiva como a completedvariável:

completed.name = 'primitive';
console.log(completed.name); // undefinedLinguagem de código:  JavaScript  ( javascript )

Em segundo lugar, o typeofde um objeto booleano retorna object, enquanto o  typeofde um valor booleano primitivo retorna boolean.

console.log(typeof completed); // boolean
console.log(typeof active); // objectLinguagem de código:  JavaScript  ( javascript )

Terceiro, ao aplicar o   instanceofoperador a um Booleanobjeto, ele retorna true. No entanto, ele retorna falsese você aplicar o   instanceof operador a um valor booleano.

console.log(completed instanceof Boolean); // false
console.log(active instanceof Boolean); // trueLinguagem de código:  JavaScript  ( javascript )

É uma boa prática nunca usar o Booleanobjeto porque isso criará muita confusão, especialmente quando usado em uma expressão. Por exemplo:

let falseObj = new Boolean(false);
if (falseObj) {
    console.log('weird part of the Boolean object');
}Linguagem de código:  JavaScript  ( javascript )

Como funciona o roteiro.

  • Primeiro, crie falseObjum Booleanwrapper de objeto para o falsevalor.
  • Em segundo lugar, use falseObjna   ifdeclaração. Porque falseObjé um objeto e o mecanismo JavaScript o força a um valor booleano de true. Como resultado, a instrução dentro do ifbloco é executada.

A tabela a seguir resume as diferenças entre JavaScript Booleane boolean:

Operador boleano boleano
 typeof boleano objeto
 instanceofboleano falso verdadeiro

É recomendado que você use a Boolean()função para converter um valor de um tipo diferente em um tipo booleano, mas você nunca deve usar o Booleancomo um objeto wrapper de um valor booleano primitivo.

Neste tutorial, você aprendeu sobre o Booleanobjeto JavaScript e as diferenças entre o Booleanobjeto e booleano tipo primitivo.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *