JavaScript has keywords for true
and false
. These keywords are of the meta-type boolean
and can be detected with 'boolean' === typeof object
. What you may not know is that JavaScript, like many C-style derived languages, has a concept of truthy
and falsy
. This concept is important because many JavaScript code snippets and frameworks make use of this language feature.
“These are non-boolean expressions that can be treated as a boolean value. The number zero is falsy, and any other number is truthy. Equally for strings, an empty string is falsy, and a non-empty string is truthy.”
from Truthy, Falsy, And Type Casting.
For an in-depth look at the concept truthy
vs the keyword true
, I created this test page: False Vs. Falsy Test Page.
The best practice approach, is to use the keywords true
and false
, while trying to avoid code that uses truthy
and falsy
. However, it is common practice and acceptable to use truthi-/falsiness to determine if a variable has a value:
Example 1: Truthy
var obj; // obj will be 'undefined' and falsy if (obj) { // do something when truthy } else { // do something when falsy }