欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js空值的判断及jquery空值判断注意事项

程序员文章站 2022-06-19 16:18:56
<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="Generator" content="EditPlus®">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <script src="jquery.min.js"></script>
    <title>Document</title>
</head>

<body>

    <!--<input type="text" class="testss" value="">-->

    <script type="text/javascript">
        
        <!-- 1、以下为javascript空值判断 -->
//        情况一
        //未定义对象【错误】的判断方法
        //console.log("未定义对象:", aa? true : false); // 报错"Uncaught ReferenceError: aa is not defined"
        //未定义对象【正确】的判断方法
        console.log("未定义对象:", (typeof aa == "undefined") ? true : false); // true

        //利用以下封装方法判断未定义对象,也是会报错的
        isEmpty(undefined);
//        情况二
        var ss = null;
        console.log(ss ? true : false); //false
//        情况三
        ss = undefined;
        console.log(ss ? true : false); //false
//        情况四
        ss = "";
        console.log(ss ? true : false); //false

        

        <!-- 2、以下为jquery空值判断-->
//        情况五
        //当页面【不存在】“.testss”
        var jq = $(".testss");
        console.log("页面不存在testss:", jq ? true : false); //true

        //判断页面是否存在jquery对象,等于0则页面无jquery对象,大于0则页面存在jquery对象:
        console.log(jq.length == 0 ? true : false); //false

        jq = $(".testss").val(); //当页面不存在“.testss”
        console.log("页面不存在testss:", jq ? true : false); //false

        //当页面【存在】“.testss”
        jq = $(".testss");
        console.log("testss存在:", jq ? true : false); //true
        //当页面【存在】“.testss”,且值为空时
//        ss = $(".testss").val();
//        console.log("testss存在,值为空:", ss ? true : false); //false

        
        //综上,以上未定义、null、undefined、""、juqery空值 五种情况,可直接采用以下方式判断
        if ("undefined" == typeof(jq) || !jq) {
            console.log("---空值或未定义");
        } else if(jq.length==0){
            console.log("---jquery空值?");
        }else{
            console.log("---有值");
        }

        function isEmpty(ss) {
            if ("undefined" == typeof ss) { //此种用法错误,不可将其封装到方法内部,应在外部直接使用
                console.log("未定义");
                return false;
            } else if (ss) {
                console.log("定义");
                return true;
            } else {
                console.log("定义");
                return false;
            }

        }

    </script>
</body>

</html>

 

本文地址:https://blog.csdn.net/wangbin316/article/details/109245707