Skip to content

Latest commit

 

History

History
76 lines (62 loc) · 2.03 KB

how-to-convert-any-javascript-value-to-a-boolean.md

File metadata and controls

76 lines (62 loc) · 2.03 KB
layout categories date tags title
../../layouts/BlogPostLayout.astro
programming
2023-06-17
javascript
How to Convert Any JavaScript Value to a Boolean

The best way to convert a JavaScript value to a boolean is to use the Boolean() function. It returns false for any falsy value and true otherwise (any value that is not falsy is truthy). You can try out the examples in this post with this Replit.

// Falsy values
const a = Boolean(null);
const b = Boolean("");
const c = Boolean(0);
const d = Boolean(false);

// Truthy values
const e = Boolean({});
const f = Boolean("foobar");
const g = Boolean(1);
const h = Boolean(true);

// The values are boolean primitives (`false` and `true`)
console.log({a, b, c, d, e, f, g, h});

Not Operator

An alternative is to use the not operator (!) twice. The first one returns a primitive boolean value, and then the second one flips the value to what you actually want.

const fooString = "";
const fooBoolean = !!fooString;
// The value is `false`
console.log({fooBoolean});

This method takes fewer characters to write, but I prefer to use the Boolean() method because I think it's clearer and more readable. We should generally optimize for reading code over writing code.

Boolean Constructor

Make sure you don't use Boolean as a constructor (using new) because that creates an object. You would have to use .valueOf() to get a primitive value.

// bar is an object
const bar = new Boolean("");

if (bar) {
    // So this would run because an object is truthy
    console.log("in bar branch");
}

const barValue = bar.valueOf();
if (barValue) {
    // But this wouldn't run because barValue is `false`
    console.log("in barValue branch");
}

console.log({bar, barValue});