zoukankan      html  css  js  c++  java
  • js中undefined,null,NaN的区别

    1.类型分析:

    js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型。
    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"
    alert(typeof a1); //显示"undefined"
    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,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与任何值都不相等,与自己也不相等。

    JavaScript undefined 属性

    定义和用法

    undefined 属性用于存放 JavaScript 的 undefined 值。

    语法

    undefined

    说明

    无法使用 for/in 循环来枚举 undefined 属性,也不能用 delete 运算符来删除它。

    undefined 不是常量,可以把它设置为其他值。

    当尝试读取不存在的对象属性时也会返回 undefined。

    提示和注释

    提示:只能用 === 运算来测试某个值是否是未定义的,因为 == 运算符认为 undefined 值等价于 null。

    注释:null 表示无值,而 undefined 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。

    实例

    在本例中,我们将检测两个变量中未定义的一个:

    <script type="text/javascript">

    var t1=""
    var t2

    if (t1===undefined) {document.write("t1 is undefined")}
    if (t2===undefined) {document.write("t2 is undefined")}

    </script>

    输出:

    t2 is undefined


    针对undefined表示并不存在的对象属性:trObj.cells[2].firstChild.value. 其中trObj、trObj.cells[2]对象存在
    ,而trObj.cells[2].firstChild、trObj.cells[2].firstChild.value不存在。所以value的值等于undefined。
    即访问对象的某属性对象不存在,当该对象不具备该属性的时候得到的也是undefined。
    而document.getElementById("indate"+m)的值为null,访问该null的value为得到 缺少对象的错误提示,js停止运行!
  • 相关阅读:
    centos crash debug
    go get Unknown SSL protocol error in connection to gopkg.in
    Tensorflow serving with Kubernetes
    Spring 集成 Swagger UI
    Docker Registry V2 Garbage Collection
    Docker Registry V2 with Nginx
    Zabbix磁盘性能监控
    Zabbix CPU utilization监控参数
    Windows挂载Gluster复制卷
    Redis持久化存储(三)
  • 原文地址:https://www.cnblogs.com/kaka-bing/p/3143913.html
Copyright © 2011-2022 走看看