js用if判断一个空对象为什么会为true?

图片描述

一个空对象为不为true,为什么会进入if判断里?

阅读 11.3k
4 个回答

null、undefined、NaN、+0、-0、"",这六种转换成布尔类型是false,其余都是true

if(a)
等价于
if((Boolean)a)

== 会进行类型转换, 应该使用 ===

    a == true //false
    a == false //false
    // 从文末链接的'相等性判断'对照表可知:
    // 当一个类型为Object的变量与Boolean类型的值使用相等比较时(==)
    // 会尝试 ToPrimitive(a) == ToNumber(b)

JavaScript 中的相等性判断

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题