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

<!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>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值