javascript中的数据类型及null、NaN、undefined的区别

来源:互联网 发布:西安网络营销策划公司 编辑:程序博客网 时间:2024/05/29 19:17

1、分析
javascript的数据类型共分为5种:object、number、boolean、string、undefined。其中null是object类型的特殊值,NaN是number的特殊值

        var a1;         var a2 = true;         var a3 = 1;         var a4 = "Hello";         var a5 = new Object();         var a6 = null;         var a7 = NaN;         var a8 = undefined;         alert(typeof a); //显示"undefined" ,这是因为a没有定义        alert(typeof a1); //显示"undefined" , 这是因为a1声明了,但没赋值        alert(typeof a2); //显示"boolean"         alert(typeof a3); //显示"number"         alert(typeof a4); //显示"string"         alert(typeof a5); //显示"object"         alert(typeof a6); //显示"object"         alert(typeof a7); //显示"number"         alert(typeof a8); //显示"undefined"    声明了,并且赋值为"undefined"

由上面可以看出typeof得到的值为undefined有三种情况:
(1)没有定义;(2)定义了没赋初始值;(3)定义了,并赋值为undefined
由于typeof是获取变量的数据类型,而Null和NaN不是数据类型里面的,故不可能会得到Null和NaN

当一个变量定义为var x = null; 用typeof表达式得到object
当以个变量定义为var x = NaN; 用typeof表达式得到number

需要注意的是,当一个变量用typeof得到的值是undefined的时候,直接输出该变量的值也是undefined;而var x = null; 和 var x = NaN; 如果直接输出x,得到的值分别是null和NaN

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"

结论:undefined与null相等,undefined、null都与NaN不相等,并且NaN也不等于NaN

0 0