Null 类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。
Undefined 类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
NaN 类型表示非数字 可以使用isNaN()函数来判断一个值是不是非数字。
区别:
1、null 是js的保留关键字,undefined和NaN是(全局对象)window的一个特殊属性(目标 in window 为ture),不是关键字
2、typeof null 为Object,undefined为undefined,NaN为number,可以理解为null是一个特殊的对象,NaN是一个特殊的数字
3、参与数值计算:null值为0加入计算,undefined和NaN参与计算结果都为NaN。
4、null==undefined,但不===;NaN与任何值都不相等,包括它自己。
5、DOM 尝试获取不存在的元素返回null