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.
Table of Contents
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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.
1 2 3 4 5 6 7 8 9 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 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.
1 2 3 4 5 6 7 8 9 10 | 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.
1 2 3 4 5 6 7 8 9 | 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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.
1 2 3 4 5 6 7 8 9 10 11 | 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
1 2 3 4 5 6 7 8 9 10 | 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.
Read More