美文网首页js基础
解析JS的undefined 和 null ," "空字符串和空

解析JS的undefined 和 null ," "空字符串和空

作者: Apple_Boy | 来源:发表于2019-08-26 13:57 被阅读0次

    先来说一说:undefined 和 null

    null: Null类型,代表“空值”,代表一个空对象指针,使用typeof运算得到 “object”,所以你可以认为它是一个特殊的对象值。
    undefined: Undefined类型,当一个声明了一个变量未初始化时,得到的就是undefined。

    null是javascript的关键字,可以认为是对象类型,它是一个空对象指针,和其它语言一样都是代表“空值”,不过 undefined 却是javascript才有的。undefined是在ECMAScript第三版引入的,为了区分空指针对象和未初始化的变量,它是一个预定义的全局变量。没有返回值的函数返回为undefined,没有实参的形参也是undefined。

    javaScript权威指南: null 和 undefined 都表示“值的空缺”,你可以认为undefined是表示系统级的、出乎意料的或类似错误的值的空缺,而null是表示程序级的、正常的或在意料之中的值的空缺。

    哈哈哈!!是不是感觉不是在说人话。如果和我一样不是很能听懂,请看下面。
    javaScript高级程序设计: 在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。 null值则是表示空对象指针。

    最后,我的理解就是: undefined是访问一个未初始化的变量时返回的值,而null是访问一个尚未存在的对象时所返回的值。因此,可以把undefined看作是空的变量,而null看作是空的对象。
    在定义一个想保存对象的变量时,就可以让该变量先保存null值,这样既能体现null是一个空指针对象,也能更好的区分null和undefined。

    接下来说一下:

    js判断输入字符串是否为空、空格、null的方法总结

    判断字符串是否为空

    var strings = ''; 
    if (string.length == 0) 
    { 
    alert('不能为空'); 
    }
    

    判断字符串是否为“空”字符即用户输入了空格

    var strings = ' '; 
    if (strings.replace(/(^s*)|(s*$)/g, "").length ==0) 
    { 
    alert('不能为空'); 
    }
    

    判断输入字符串是否为空或者全部都是空格

    function isNull( str ){
    if ( str == "" ) return true;
    var regu = "^[ ]+$";
    var re = new RegExp(regu);
    return re.test(str);
    }
    

    如果有null时上面代码就无法正常判断了,下面代码是判断为null的情况

    var exp = null; 
    if (exp == null) 
    { 
    alert("is null"); 
    }
    

    exp 为 undefined 时,也会得到与 null 相同的结果,虽然 null 和 undefined 不一样。

    注意:要同时判断 null 和 undefined 时可使用本法。 代码如下

    var exp = null; 
    if (!exp) 
    { 
    alert("is null"); 
    }
    

    如果 exp 为 undefined,或数字零,或 false,也会得到与 null 相同的结果,虽然 null 和二者不一样。注意:要同时判断 null、undefined、数字零、false 时可使用本法。代码如下

    var exp = null; 
    if (typeof exp == "null") 
    { 
    alert("is null"); 
    }
    

    为了向下兼容,exp 为 null 时,typeof null 总返回 object,所以不能这样判断。

    <script type="text/javascript">
    function testuser(){
    var i= document.getElementByIdx_x("aa");
    if (i.value=="null")
    {
    alert("请登录后再发表留言!")
    return false;
    }
    else
    {
    alert(i.value)
    return true;
    }
    }
    </script>
    

    参考文章:https://www.cnblogs.com/ly0612/p/6696982.html
         https://www.jb51.net/article/86543.htm

    相关文章

      网友评论

        本文标题:解析JS的undefined 和 null ," "空字符串和空

        本文链接:https://www.haomeiwen.com/subject/jwvrectx.html