JavaScript中的六个假值及其相等性比较详解
本文列举了JavaScript中六个被视为“假”的值:false、null、undefined、0、空字符串和NaN,并指出其余类型均为真值。通过对比测试发现,这些假值之间并不完全相等,例如false等于0和空字符串,而null仅等于undefined。理解这些差异对于编写健壮的JS代码至关重要。
JavaScript中的假值判定场景
在编程过程中,我们经常需要在特定的语句结构中判断条件的真假。
例如在if条件分支语句中,
在while循环语句的条件判断中,
以及在for循环语句的第二个表达式部分。
具体的代码结构如下所示:
示例代码如下:
if (boo) {
// 执行相关操作
}
while (boo) {
// 执行相关操作
} JavaScript的六个假值及其类型特征
在JavaScript语言中,共有6个值会被转换为布尔类型的“假”,这六个值分别是:
false
null
undefined
0
''(即空字符串)
NaN
需要特别注意的是,false本身属于布尔类型,而其余5个值的类型均不是布尔型。
除了上述6个值之外,其他所有数据类型在布尔上下文中均被视为“真”,这包括对象、数组、正则表达式以及函数等。需要警惕的是,字符串形式的'0'、'null'、'false',以及空对象{}和空数组[],它们在实际判断中都是真值。
假值之间的相等性比较规则
尽管这六个值在布尔转换时都表现为“假”,但它们彼此之间的相等关系并不完全相同。
具体的比较代码示例如下:
console.log( false == null ) // 输出 false
console.log( false == undefined ) // 输出 false
console.log( false == 0 ) // 输出 true
console.log( false == '' ) // 输出 true
console.log( false == NaN ) // 输出 false
console.log( null == undefined ) // 输出 true
console.log( null == 0 ) // 输出 false
console.log( null == '' ) // 输出 false
console.log( null == NaN ) // 输出 false
console.log( undefined == 0) // 输出 false
console.log( undefined == '') // 输出 false
console.log( undefined == NaN) // 输出 false
console.log( 0 == '' ) // 输出 true
console.log( 0 == NaN ) // 输出 false 基于上述使用“==”运算符进行的测试,我们可以总结出以下规律:
false在与其他假值比较时,除了与自身比较结果为true外,与数字0和空字符串''的比较结果也为true。
null仅在与undefined进行比较时结果为true,反之,undefined也仅在与null比较时为true,它们之间没有其他相等的假值。
数字0除了与false比较为true外,还与空字符串''比较为true。
空字符串''除了与false比较为true外,还与数字0比较为true。
免登录快速分享代码:适合面试协作的轻量级JS在线运行工具推荐
2026-11-05 14:45:59
JS空字符串和纯空格转浮点数的结果是什么
2026-11-05 11:04:42
JS在线格式化缩进混乱怎么办?配置项调整技巧
2026-11-04 23:27:25
JS怎么获取秒级时间戳
2026-11-03 21:45:29
JS时间戳怎么从毫秒转换为秒
2026-11-03 20:04:14
