zoukankan      html  css  js  c++  java
  • 区分js中的null,undefined,"",0和false

          console.log(typeof null);//object
            console.log(typeof undefined);//undefined
            console.log(typeof "");//string
            console.log(typeof 0);//number
            console.log(typeof false);//boolean

    在程序语言定义的各种各样的数据类型中,我们都会为其定义“空值”或“假值”,我们在标题里已经列出了js中的所有空值和假值,出来boolean本身就是true和false两种情况外,其他数据类型的空值无非是undefined和defined两类,如上代码。

    alert(0 == ''); //true
    alert(0 == false); //true
    alert(false == ''); //true
    alert(null == undefined); //true
    
    alert(!0); //true
    alert(!false); //true
    alert(!undefined); //true
    alert(!null); //true
    alert(!''); //true
    
    alert(0 == undefined); //false
    alert(0 == null); //false
    alert(false == null); //false
    alert(false == undefined);//false
    alert('' == null); //false
    alert('' == undefined); //false

    这五个值的共同点是,在if语句中做判断,都会执行false分支。当然从广义上来看,是说明这些数值都是其对应数据类型上的无效值或空值。还有这五个值作!运算,结果全为:true。

        这几个值中也有不同,其中undefined和null比较特殊,虽然null的类型是object,但是null不具有任何对象的特性,就是说我们并不能执行null.toString()、null.constructor等对象实例的默认调用。所以从这个意义上来说,null和undefined有最大的相似性。看看null == undefined的结果(true)也就更加能说明这点。不过相似归相似,还是有区别的,就是和数字运算时,10 + null结果为:10;10 + undefined结果为:NaN。

        另外""、0和false虽然在if语句表现为"假值",可它们都是有意义数据,只是被作为了"空值"或"假值",因为:"".toString(),(0).toString()和false.toString()都是合法的可执行表达式。

    其他的NAN也可以近似看做是一个空值或假值,因为任何类型的值与NAN做比较得到的都是false,包括NAN本身。

    typeof的返回值类型是字符串

  • 相关阅读:
    mysql的sql性能分析器
    Maven(一)
    SVN使用(二)
    SVN使用(一)
    php smarty section使用
    php smarty foreach循环注意
    PHP unlink() 函数
    PHP file_exists() 函数
    PHP realpath() 函数
    PHP dirname() 函数
  • 原文地址:https://www.cnblogs.com/aniu-caili/p/9453708.html
Copyright © 2011-2022 走看看