JavaScript Booleans

By | August 25, 2022

A JavaScript Boolean represents one of two values: true or false.

Boolean Values

Very often, in programming, you will need a data type that can only have one of two values, like

  • YES / NO
  • ON / OFF
  • TRUE / FALSE

For this, JavaScript has a Boolean data type. It can only take the values true or false.

The Boolean() Function

You can use the Boolean() function to find out if an expression (or a variable) is true:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Display the value of Boolean(10 > 9):</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = Boolean(10 > 9);
</script>
</body>
</html>​

Result:

JavaScript Booleans

Display the value of Boolean(10 > 9):

true

Or even easier:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Display the value of 10 > 9:</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 10 > 9;
</script>
</body>
</html>

Result:

JavaScript Booleans

Display the value of 10 > 9:

true

Comparisons and Conditions

The chapter JS Comparisons gives a full overview of comparison operators.

The chapter JS Conditions gives a full overview of conditional statements.

Here are some examples:

OperatorDescriptionExample
==equal toif (day == “Monday”)
>greater thanif (salary > 9000)
<less thanif (age < 18)

The Boolean value of an expression is the basis for all JavaScript comparisons and conditions.

Everything With a “Value” is True

Examples:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
"100 is " + Boolean(100) + "<br>" +
"3.14 is " + Boolean(3.14) + "<br>" +
"-15 is " + Boolean(-15) + "<br>" +
"Any (not empty) string is " + Boolean("Hello") + "<br>" +
"Even the string 'false' is " + Boolean('false') + "<br>" +
"Any expression (except zero) is " + Boolean(1 + 7 + 3.14);
</script>
</body>
</html>

Result:

JavaScript Booleans

100 is true
3.14 is true
-15 is true
Any (not empty) string is true
Even the string ‘false’ is true
Any expression (except zero) is true

Everything Without a “Value” is False

The Boolean value of 0 (zero) is false:

Examples:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Display the Boolean value of 0:</p>
<p id="demo"></p>
<script>
let x = 0;
document.getElementById("demo").innerHTML = Boolean(x);
</script>
</body>
</html>

Result:

JavaScript Booleans

Display the Boolean value of 0:

false

The Boolean value of -0 (minus zero) is false:

Examples:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Display the Boolean value of  -0:</p>
<p id="demo"></p>
<script>
let x = -0;
document.getElementById("demo").innerHTML = Boolean(x);
</script>
</body>
</html>

Result:

JavaScript Booleans

Display the Boolean value of -0:

false

The Boolean value of “” (empty string) is false:

Examples:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Display the Boolean value of "":</p>
<p id="demo"></p>
<script>
let x = "";
document.getElementById("demo").innerHTML = Boolean("");
</script>
</body>
</html>

Result:

JavaScript Booleans

Display the Boolean value of “”:

false

The Boolean value of undefined is false:

Examples:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Display the Boolean value of undefined:</p>
<p id="demo"></p>
<script>
let x;
document.getElementById("demo").innerHTML = Boolean(x);
</script>
</body>
</html>

Result:

JavaScript Booleans

Display the Boolean value of undefined:

false

The Boolean value of null is false:

Examples:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Display the Boolean value of null:</p>
<p id="demo"></p>
<script>
let x = null;
document.getElementById("demo").innerHTML = Boolean(x);
</script>
</body>
</html>

Result:

JavaScript Booleans

Display the Boolean value of null:

false

The Boolean value of false is (you guessed it) false:

Examples:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Display the Boolean value of false:</p>
<p id="demo"></p>
<script>
let x = false;
document.getElementById("demo").innerHTML = Boolean(x);
</script>
</body>
</html>

Result:

JavaScript Booleans

Display the Boolean value of false:

false

The Boolean value of NaN is false:

Examples:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Display the Boolean value of NaN:</p>
<p id="demo"></p>
<script>
let x = 10 / "Hello";
document.getElementById("demo").innerHTML = Boolean(x);
</script>
</body>
</html>

Result:

JavaScript Booleans

Display the Boolean value of NaN:

false

JavaScript Booleans as Objects

Normally JavaScript booleans are primitive values created from literals:
let x = false;

But booleans can also be defined as objects with the keyword new:
let y = new Boolean(false);

Example:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Booleans and Boolean objects cannot be safely compared:</p>
<p id="demo"></p>
<script>
// x is a boolean
let x = false;
// y is an object
let y = new Boolean(false);
document.getElementById("demo").innerHTML = typeof x + "<br>" + typeof y;
</script>
</body>
</html>

Result:

JavaScript Booleans

Booleans and Boolean objects cannot be safely compared:

boolean
object

Do not create Boolean objects.

The new keyword complicates the code and slows down execution speed.

Boolean objects can produce unexpected results:

When using the == operator, x and y are equal:

Example:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Booleans and Boolean objects cannot be safely compared:</p>
<p id="demo"></p>
<script>
let x = false;         // x is a boolean
let y = new Boolean(false);  // y is an object
document.getElementById("demo").innerHTML = (x==y);
</script>
</body>
</html>

Result:

JavaScript Booleans

Booleans and Boolean objects cannot be safely compared:

true

When using the === operator, x and y are not equal:

Example:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Booleans and Boolean objects cannot be safely compared:</p>
<p id="demo"></p>
<script>
let x = false;         // x is a Boolean
let y = new Boolean(false);  // y is an object
document.getElementById("demo").innerHTML = (x===y);
</script>
</body>
</html>

Result:

JavaScript Booleans

Booleans and Boolean objects cannot be safely compared:

false

Note the difference between (x==y) and (x===y).

(x == y) true of false?

Example:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Booleans and Boolean objects cannot be safely compared.</p>
<p id="demo"></p>
<script>
const x = new Boolean(false);
const y = new Boolean(false);
document.getElementById("demo").innerHTML = (x==y);
</script>
</body>
</html>

Result:

JavaScript Booleans

Booleans and Boolean objects cannot be safely compared.

false

(x === y) true of false?

Example:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Booleans and Boolean objects cannot be safely compared.</p>
<p id="demo"></p>
<script>
const x = new Boolean(false);
const y = new Boolean(false);
document.getElementById("demo").innerHTML = (x===y);
</script>
</body>
</html>

Result:

JavaScript Booleans

Booleans and Boolean objects cannot be safely compared.

false

Leave a Reply

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