data-undefined
基本类型之一的 Undefined
只拥有一个值 undefined
,代表未定义的值。凡是未被定义和赋值的变量、属性或参数,都默认为 undefined
问题
问题一、null 和 undefined 有什么关系?
相同点
- 都是代表着空类型
- 转换为
Boolean
都是false
null == undefined
结果为true
不同点
typeof null
结果为{}
而typeof undefined
结果为undefined
Number(null)
结果为0
而Number(undefined)
结果为NaN
null === undefined
结果为false
问题二、undefined >= undefined
为什么是 false
?
检验
console.log(undefined >= undefined) // false
原因
>=
大于等于操作符,要求两边必须为数值类型,所以要对undefined
强制类型转换,内部执行ToNumber(undefined)
输出NaN
, 所以最后的表达式为undefined >= undefined
可以转化为 NaN >= NaN
, 由于 NaN
不大于、等于、小于任何值,所以结果为false