falsy 数据,就是 JavaScript 中转为 Boolean 值 为 false 的数据。
在 JavaScript 中,这样的数据一共有 8 个:
false | 布尔值 false | |
0 | 数值 0 | |
-0 | 数值 负 0 | |
0n | 当 bigInt 作为布尔值使用时, 遵从其作为数值的规则. 0n 是 falsy 值. | |
"", '', `` | 这是一个空字符串 (字符串的长度为零). JavaScript 中的字符串可用双引号 | |
null | 空值 | |
undefined | 变量的默认值 | |
NaN | 非数值 |
尽管他们都属于 falsy 值,转为布尔值都是false。但是它们之间 == 的话,并不全部为 true。
这个简直颠覆了我以往的理解,以前我记得 == 的话 是为 true 的,只有 === 才为false,难道我记忆偏差了?
首先,NaN 和任何数都不相等,包括它自己
NaN == NaN // false
它们之间 == 比较,为true 的就 三个。
console.info( 0 == false ); // true
console.info( undefined == null ); // true
console.info( 0n == 0 ); // true
// 以下都为 false
console.info( undefined == 0 );
console.info( null == "" );
console.info( 0 == null );
console.info( false == null );
console.info( false == undefined );
console.info( 0n == undefined );
记录一下~ 又 Get 了一个新技能点~!!