javascript 中变量真假值判断(哪些会被判断为false)

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

  1. false (布尔型)
  2. null (用于定义空的或者不存在的引用)
  3. undefined (未定义值)
  4. 0 (数值型)
  5. '' (空字符串) (字符型)
  6. 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,还有空字符串 ''" 和空数组 []
  • 空字符串 '' 除了和 false 比较为 true,还有一个数字 0

 

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





  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值