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

图片描述

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

阅读 11.4k
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 中的相等性判断

推荐问题