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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值