undefined 是 Undefined 类型; null 是 Null 类型,undefined 派生于 null; Undefined、Null、Boolean 作为 JavaScript 的5个基本数据类型的3个,因此 null 和 undefined 当然既不等于 false 也不等于 true,数据类型都不一样。 只是 undefined 用于表示未定义的变量, null 用于表示空对象指针,null 着重于表示对象。 因此 typeof undefined 输出结果为 Undefined 类型,typeof null 输出结果为 Object 类型。 typeof undefined == typeof object 当然等于 false。 null 和 undefined 作为判断条件先用 Boolean() 转化成Boolean 类型, 在判断对象是否为空指针时用 null 可以表示 false, undefined 则只有 false 情况没有 true 情况
如果你用null来判断null==false以及null==true,你会发现返回的结果都是false,这个结果
是不是让你觉得很奇怪。
然后你可以再试试undefined==false以及undefined==true,同样的,你会发现,返回的结果
同样都是false
再接下来,试试null==undefined,惊呆了,居然返回一个true
最后说说js的隐式类型转换
如果用他们两者作为判断条件的话,在判断条件中他们可以当做false来作为if语句的判断
涉及到if判断语句的值最终都会转换为Boolean值做判断
下面六种情况都会被转换为false
"", 0 , null , undefined , false, NaN
网友评论