JavaScript中有6个值为“假”

本文详细介绍了JavaScript中的真假值概念,特别强调了六种被视为“假”的特殊值:false、null、undefined、0、空字符串及NaN,并通过示例展示了这些值在比较运算中的表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通常在以下语句结构中需要判断真假

  1. if分支语句

  2. while循环语句

  3. for里的第二个语句

1
2
3
4
5
6
7
if  (boo) {
     // do something
}
 
while  (boo) {
     // do something
}

 

JavaScript中有6个值为“假”,这六个值是

  1. false

  2. null

  3. undefined

  4. 0

  5. '' (空字符串)

  6. NaN

 

这里面false本身是布尔类型,其它5个则不是。

除了这6个外,其它均为“真” ,包括对象、数组、正则、函数等。注意 '0'、'null'、'false'、{}、[]也都是真值  。

 

虽然这六个值都为“假”,它们之间并非都相等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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,还有一个空字符串 ''

  • 空字符串''出了和false比较为true,还有一个数字0

 

当然,对于这一切,查看下规范是最踏实的,ES里的ToBoolean阐述了所有情形

 


转载于:https://my.oschina.net/bootstrap/blog/208610

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值