Boolean Data Type in JavaScript

The boolean is a primitive data type in JavaScript. It represents a simple true/false value. They are implemented as numerical values with a single binary digit (i.e., 0 & 1). The Boolean is an object wrapper for the primitive boolean value. Also, let us find the difference between Boolean object vs boolean primitive. The JavaScript also has a Boolean global function, which we use to convert any value to boolean primitive type. We also learn how to convert boolean to string and string to boolean.

Defining boolean

There are two ways you can create the primitive boolean variable. using the normal variable declaration or using the global Boolean function.

boolean declaration

The following example creates two primitive boolean variables. You can see that the typeof returns as boolean.

Example

let isDone= true;          // primitive boolean type
let isPending= false;      // primitive boolean type

console.log(isDone);                //output true
console.log(isPending);             //output false

console.log(typeof(isDone));       //output boolean


**** output ****
true
false
boolean

Boolean Global function

The Boolean() global function converts its argument to a primitive boolean value and returns it.

let boolvar=Boolean(true)
console.log(boolvar)           //true
console.log(typeof(boolvar))   //boolean

**** output ****
true
boolean

You can pass any value to the Boolean function. It always converts them to either true or false. Whether a particular value converts to true or false depends on whether the value is truthy or falsy.

Truthy & Falsy

We can convert any types to boolean in JavaScript using the Boolean function

Falsy are those values, that convert to boolean false. There are eight falsy values in JavaScript. They are false, 0 (zero), -0 (minus zero) , 0n (BigInt zero) , " " (empty string), null, undefined & NaN.

Everything else converts to true, hence we call them as Truthy.

Examples of Falsy

console.log(boolvar)           

boolvar=Boolean(0)             // 0 is false
console.log(boolvar)           

boolvar=Boolean(-0)            // -0 is also false
console.log(boolvar)           

boolvar=Boolean(0n)            //BigInt 0 is also false
console.log(boolvar)           

boolvar=Boolean("")            //empty string is false
console.log(boolvar)           

boolvar=Boolean(null)          //null is also false
console.log(boolvar)           

boolvar=Boolean(undefined)     //undefined is also false
console.log(boolvar)           

boolvar=Boolean(NaN)           //NaN is also false 
console.log(boolvar)          

Examples of truthy

let boolvar:boolean

boolvar=Boolean(true)           //true is true 
console.log(boolvar)     

boolvar=Boolean("test")         //string
console.log(boolvar)           

boolvar=Boolean("0")            //0 as string
console.log(boolvar)           

boolvar=Boolean("false")         //false as string
console.log(boolvar)           

boolvar=Boolean(100)             //number other than 0 & -0
console.log(boolvar)          

boolvar=Boolean({})              //a emty object
console.log(boolvar)        

let employee = { name:'test'}
boolvar=Boolean(employee)        // non empty object
console.log(boolvar)        

boolvar=Boolean([])              //a emty array
console.log(boolvar)        

boolvar=Boolean(new Date())      //a emty array
console.log(boolvar)        

boolvar=Boolean(Infinity)        //Infinity both +ve & -ve
console.log(boolvar)        

Boolean Object

The Boolean is an object and is a wrapper around boolean.primitive type. You can create a Boolean object using the constructor function.

let boolVar = new Boolean("test");
console.log(boolVar);
console.log(typeof(boolVar));


***output***
Boolean {true}
object

As shown in the previous example, zero, empty string, null, undefined results in false. Everything else returns true.

You can use the valueOf method to get the primitive boolean back.

let boolobj=new Boolean("test")
console.log(boolobj)                         //[Boolean: true]
console.log(typeof(boolobj))                 //object


console.log(boolobj.valueOf())               //true
console.log(typeof(boolobj.valueOf()))       //boolean

Boolean vs boolean

The boolean is a primitive type and Boolean is an object. Boolean() is a global function

The boolean is created using variable declaration or using the Boolean() function. The Boolean object is created using the constructor (using the new Boolean())

And since the Boolean object is an object, comparing it with boolean value always results in true, irrespective of its internal value.

var b  = new Boolean(false);
console.log(b.valueOf())     //false
if (b) {
  console.log("b is true although b is false");     //
}
else {
    console.log("b is false");     //
}


// false
// b is true although b is false

The following code is similar to the above, except we used the primitive boolean instead of object.

var b  = false;
console.log(b.valueOf())     //false
if (b) {
  console.log("b is true although b is false");     //
}
else {
    console.log("b is false");     //
}


// false
// b is false

Convert boolean to number

Converting the boolean to the number primitive will result in 1 for true and 0 for false.

let trueNum=Number(true)
let falseNum=Number(false)


console.log(trueNum);  // 1
console.log(falseNum); // 0

console.log(typeof(trueNum))     //number
console.log(typeof(falseNum))    //number

Convert boolean to string

let trueStr=String(true);
let falseStr=String(false);

console.log(trueStr)      //true
console.log(falseStr)     //false

console.log(typeof(trueStr))      //string
console.log(typeof(falseStr))     //string

Summary

The boolean is a primitive type in JavaScript. The JavaScript also has the Boolean object. Always use the primitive boolean. When converting the other data types to boolean remember that zero, empty string, null, undefined, NaN returns false. Everything else returns true.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top