Let's talk about "falsiness"

What is falsiness?
If you write a statement where you are testing if something is true or not--like an if statement that uses a logical operator like ||, !, or &&--you expect that statement to return a boolean value of true or false. Sometimes it doesn't resolve to a boolean value--true or false--yet, nevertheless, it gets interpreted like a boolean value. We call those values "truthy" or "falsey".
In Javascript, examples of falsy values are:
  • null
  • undefined
  • NaN (Not a Number)
  • "" (empty string)
  • false
  • 0
  • Every other value--every value that is not one of the above--will evaluate to true in a Boolean evaluation in Javascript.
    Let's go through them one by one. First, I'll demonstrate a variable assignment to each falsy value. Next, I'll show how that falsy value is is interpreted as false using the Boolean() function, which takes a value or expression and always returns either true or false.
    null
    A variable that resolves to null is a variable that has been deliberately assigned an empty value
    let foo = null
    console.log(foo) // null
    undefined
    An undefined variable is a variable that has not yet been assigned a value.
    let foo
    console.log(foo) // undefined
    console.log(Boolean(foo)) // false
    NaN
    A variable that resolves to NaN can be the result of an invalid math operation, such as 0/0 or sqrt(-1). A number is expected from a math operation, but the expression is invalid, so the result is not a (valid) number.
    let foo = 0/0
    console.log(foo) // undefined 
    console.log(Boolean(foo)) // false
    "" (empty string)
    Just what it sounds like: a variable that has been assigned to a string with no content.
    let foo = ""
    console.log(foo) // (actually, nothing shows up)
    console.log(Boolean(foo)) // false
    false
    Just what it sounds like: a variable that has been assigned to a the boolean value false.
    let foo = false
    console.log(foo) // false
    console.log(Boolean(foo)) // false
    0
    Just what it sounds like: a variable that has been assigned to 0 or that resolves to 0.
    let foo = 5 - 5
    console.log(foo) // 0
    console.log(Boolean(foo)) // false

    25

    This website collects cookies to deliver better user experience

    Let's talk about "falsiness"