Falsy values in JavaScript
JavaScript has the following falsy values. When used in a boolean context, they will be coerced to false
.
Value | Type | Description |
---|---|---|
null | Null | The keyword null — the absence of any value. |
undefined | Undefined | undefined — the primitive value. |
false | Boolean | The keyword false. |
NaN | Number | NaN — not a number. |
0 | Number | The Number zero, also including 0.0, 0x0, etc. |
-0 | Number | The Number negative zero, also including -0.0, -0x0, etc. |
0n | BigInt | The BigInt zero, also including 0x0n, etc. Note that there is no BigInt negative zero — the negation of 0n is 0n. |
“” | String | Empty string value, also including '' and ``. |
document.all | Object | The only falsy object in JavaScript is the built-in document.all. |
注意:falsy
value在if(...)
中返回false。
Truthy values
除了上面的Falsy values
,剩下的都是truthy values
.
Truthy values actually ==false
注意,有些值虽然是truthy values,但是它们竟然==fasle
,所以,永远不要在JS中使用==
!.
以下这些比较结果都是true。至于原因嘛,请看这篇
1 | console.log('0' == false); // true |
Reference: https://developer.mozilla.org/en-US/docs/Glossary/Falsy