简述null undefined NaN的异同

Posted songxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简述null undefined NaN的异同相关的知识,希望对你有一定的参考价值。

1. 类型分析:
JS中数据类型有:undefined,boolean,number,string,object,前四种值类型(基础数据类型),object是引用类型
var a1; //undefined
var a2=10; //number
var a3="hello"; //string
var a4=true; //boolean
var a5=new Object(); //0bject
var a6=NaN; //number
var a7=null; //object
var a8=undefined; //undefined
结论:未定义的值和定义未赋值的类型是undefined,null是一种特殊的object,NaN是一种特殊的number

2.比较运算
var a1; //a1的值为undefined
var a2 = null;
var a3 = NaN;
alert(a1 == a2); //显示"true"
alert(a1 != a2); //显示"false"
alert(a1 == a3); //显示"false"
alert(a1 != a3); //显示"true"
alert(a2 == a3); //显示"false"
alert(a2 != a3); //显示"true"
alert(a3 == a3); //显示"false"
alert(a3 != a3); //显示"true"
结论:(1)undefined与null是相等;(2)NaN与任何值都不相等,与自己也不相等
3.Undefined 数据类型
undefined属性用来存放JS的undefined值
1.返回undefined 值: 对象属性不存在;声明了变量但从未赋值
2.无法使用for/in循环来枚举undefined属性,也不能用delete运算符删除
3.undefined不是常量,可以把它设置为其他值
4.Null数据类型
在JS中null只有一个值null
1.关键字null不能用作函数或变量的名称
2.包含null的变量包含“无值”或“无对象”,即改变量没有保存有效的数字、字符串、boolean、数组或对象
3.可以通过给一个变量赋null值来清空数据的内容
4.null的typeof返回是object

5.null与undefined的区别
5.1 null是关键字;undefined是Global对象的一个属性
5.2 null是对象(空对象, 没有任何属性和方法);undefined是undefined类型的值
console.log(typeof null); //return object
console.log(typeof undefined); //return undefined
5.3 在对象模型中,所有的对象都是Object或其子类的实例,但是null对象除外
console.log(null instanceof Object); //return false (判断是否是对象)
5.4 null“等值==”undefined,但是不“全等值===”undefined
console.log(null == undefined); //return true
console.log(null === undefined); //return false
5.5 运算时,null和undefined都可以被类型转换为false,但是不等值于false
console.log(!null, !undefined); //true,true 
console.log(null==false); //false 
console.log(undefined==false); //false


















































以上是关于简述null undefined NaN的异同的主要内容,如果未能解决你的问题,请参考以下文章

javscript中的null和undefined异同

Javascript 中 null,NaN和undefined的区别

判断 null undefined NaN

null,undefined,NaN

打字稿:仅测试 Nan、null 和 undefined

javascript数组去重(undefined,null,NaN)