JavaScript中的六个假值及其相等性比较详解

作者:键盘侠

时间:2026-10-27

浏览:617

本文列举了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。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章