9 types of falsy values in JavaScript
Ever wondered what is considered falsy in JavaScript. Here is the complete list of all the possible falsy values in JavaScript.

Experienced Software Engineer with over 6 years of expertise in front-end development. Proficient in Git for version control and skilled in TypeScript.
You might have already come across (or may come across) the question below in a JavaScript/Frontend/Web Engineer interview.
What are the possible outcomes of the given code snippet?
function greet(value) {
if (value) {
return "Hello, World!";
}
return value;
}
To answer the above question, you first need to understand what is considered falsy in JavaScript. Before continuing with the post, take a while and try to answer this by yourself. Let me know your answers in the comments below.
Falsy values in JavaScript -
null
The null value represents the absence of any value.
Boolean(null) // falseundefined
The undefined property indicates that a variable has not been assigned a value, or not declared at all.
Boolean(undefined) // falsefalse
The boolean value.
NaN
The global property that represents Not-A-Number.
Boolean(NaN) // false0
The number zero (including 0.0, 0x0).
Boolean(0) // false-0
The number negative zero (including -0.0, -0x0)
Boolean(-0) // false0n
The BigInt zero (including 0x0n). BigInt values represent numeric values which are too large to be represented by the number.
Boolean(0n) // false""
The empty string value (including '' and ``).
Boolean("") // falsedocument.all
The only falsy object in JavaScript. This read-only property returns HTMLAllCollection rooted at the document node. This property is deprecated, some browsers might still support it.
Boolean(document.all) // false
So in total there are 9 falsy values in JavaScript and all other values are considered truthy.
Answer to the above question -
Above code snippet have 10 possible outcomes (9 falsy values and "Hello, World!" for all other values).