Can someone please explain JavaScript Truthy and Falsy, using the below sample data. I have read other threads but still confused.
var a = 0; var a = 10 == 5; var a = 1; var a = -1;
From my understanding, I believe that var a = 1;
is the only truthy and the rest are falsy - is this correct?
Truthy values are values that evaluate to True in a boolean context. Falsy values are values that evaluate to False in a boolean context. Falsy values include empty sequences (lists, tuples, strings, dictionaries, sets), zero in every numeric type, None , and False .
To check if a value is truthy, pass the value to an if statement, e.g. if (myValue) . If the value is truthy, it gets coerced to true and runs the if block. Copied! In our if statement, we check if the value in the myVar variable is truthy.
A falsy (sometimes written falsey) value is a value that is considered false when encountered in a Boolean context. JavaScript uses type conversion to coerce any value to a Boolean in contexts that require it, such as conditionals and loops.
Every other value is considered truthy. It's important to remember that this applies to all JavaScript values, even ones that might seem falsy, such as empty arrays ( [] ) or empty objects ( {} ). You can check a value's truthiness using either the Boolean() function or a double negation ( !! ).
From my understanding, I believe that var a = 1; is the only truthy and the rest are falsy’s - is this correct?
No.
var a = 0;
Number zero is falsy. However, note that the string zero "0"
is truthy.
var a = 10 == 5;
This is same as var a = (10 == 5);
, so this is falsy.
var a = 1;
var a = -1;
Any non-zero number including negative numbers is truthy.
Quoting from MDN
In JavaScript, a truthy value is a value that translates to true when evaluated in a Boolean context. All values are truthy unless they are defined as falsy (i.e., except for
false
,0
,""
,null
,undefined
, andNaN
).
List of falsy values in JavaScript:From MDN
false
null
undefined
0
NaN
''
, ""
, ``
(Empty template string)document.all
0n
: BigInt-0
There's a simple way to check, which you can use now and forever:
function truthyOrFalsy(a) { return a ? "truthy" : "falsy"; }
To wit:
> truthyOrFalsy(0) "falsy" > truthyOrFalsy(10 == 5) "falsy" > truthyOrFalsy(1) "truthy" > truthyOrFalsy(-1) "truthy"
Also see a list of all falsey values in JavaScript.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With