• javascript jquery 推断对象为空的方式


    java中存在非常多空指针的问题,须要常常做预防和推断,如若不然,控制台出现恼人的异常,让人信心备受打击,早期敲代码的时候没有经验,不能依据异常信息找到问题的根源,唯一做的事情就是祈祷,千万别出现什么异常信息啊!如今碰到与问题,到希望异常信息越具体越好,但偏偏事与愿违,我们所採用的框架竟然把所有的异常所有throws 即使再controller获取也比較麻烦,一旦出现与预期不一样的结果,都不知道是哪里出了问题,调试起来确实不便.

    js中也是一样,尽管不会出现一大串异常代码,但控制台还是会有错误警告的,这段时间一直使用chrome和IE11调试js代码,认为其方便性不亚于直接使用MyEclipse调试java代码,java里面推断字符串变量是否为空,非常easy了:

    String str = "";
    if(str!=null&&!"".equals(str)){
    //your code
    }

    当然也能够使用框架上的API实现:

    String str = "";
    if(StringUtils.isNotEmpty(str)){
    	//your code
    }

    StringUtils.isNotEmpty是 org.apache.commons.lang.这个包以下的类,别与spring里面的混为一谈.

    在js中,也是常常须要推断变量是否为空的,要不然会常常出现undefined或null等情况.

    假设是字符串类型或者对象类型,仅仅须要採用这种方式:

    if(str){
       //your code
    }

    
    当str==undefined 或str==null或str==""的时候都是返回false的,可是当str=="0"的时候却返回true,由于"0"也是字符串,是非空的字符串变量.
    

    假设当变量是数值类型,比方:

    var i = 0;
    if(i){
       //your code
    }

    
    这样是返回false的,js是弱类型的语言,对于String类型和数值类型的区分不严格,也就是通过var定义的变量能够是不论什么类型的,仅仅要你对它进行初始化,比方:
    

    var arr = [];
    var str = "123";
    var obj = {field:"123"};
    var i = 2;
    i = arr;
    i = str;
    i = obj;

    变量定义以后进行初始化,值是什么类型的,变量就是什么类型的变量,然后又一次进行赋值,变量的类型就又会发生改变,当然了,你能够理解为,var类型是一切类型的父类型,因此能够"包罗万象"了.因此以上的代码都是正确的,不会出现错误,但为了代码的可读性,建议不同类型的变量不要相互赋值,以免发生混乱.

    最后多说一句,String类型的变量一般能够跟其它类型的变量发生转换比方:

    var str = "0";
    i = 0;
    alert(str == i);

    返回true

    当变量没有定义的时候,直接进行了初始化,也是能够识别的:

    xx = 0;
    if("0"==xx){
      alert(xx);
    }
    假设没有定义且为初始化,直接拿来用,那就不行了.

    //////////////////////////////////////////////////////////////////////////////////


    jquery 推断一个对象是否存在  


     jQuery 代码推断一个对象是否存在:


    ***********************错误***********************


    if($("#id")){}else{}由于 $(“#id”) 无论对象是否存在都会返回 object 。


    ***********************正确***********************


    if($("#id").length>0){}else{}使用 jQuery 对象的属性 length 来推断,假设 > 0 就存在。


    或者


     if($("#id")[0]){} else {}


    或者


    直接使用原生的 Javascript 代码来推断: if(document.getElementById("id")){} else {}

    ////////////////////////////////////////////////////////////////////////////////

  • 相关阅读:
    Android 下拉刷新之ScrollView--PullToRefreshScrollView
    Android 将Openfire中的MUC改造成类似QQ群一样的永久群
    Android多行文本折叠展开效果
    Android关于实现EditText中加多行下划线的的一种方法
    Android 官方下拉刷新组件SwipeRefreshLayout
    listview滑动顶部停靠(stickyListHeadersListView)
    Hadoop HBase概念学习系列之优秀行键设计(十六)
    Hadoop HBase概念学习系列之HBase里的长表VS宽表VS窄表(十五)
    Hadoop HBase概念学习系列之HBase里的客户端和HBase集群建立连接(详细)(十四)
    Hadoop HBase概念学习系列之HBase表的一些设置(强烈推荐好好领悟)(十三)
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6925968.html
Copyright © 2020-2023  润新知