• 非空判断与是否存在


    CreateTime--2017年2月16日14:11:35
    Author:Marydon

    非空判断与是否存在
    UpdateTime--2017年7月13日16:27:29

    1.取值问题

      1.1 使用javascript进行页面取值,获取到的值只会是字符串string类型;

        原因:如果页面上不存在该元素,运行js时会直接报错。

      1.2 使用jQuery进行页面取值时,获取到的值的类型只能有两种:string、undefined。

        原因:如果页面上存在该元素,返回的是字符串;如果页面上不存在该元素,返回的是undefined。

      1.3 使用js将null值赋到页面上时,赋的值其实是空字符串""; 

      1.4 从数据库查询数据,若字段是日期类型,字段值为空且SQL、java未将日期类型转换成字符串的情况下,返回的是null,是否存在判断用==null;

        字段为字符串类型且为空,返回的是空字符串"";

      1.5 通过JSON对象根据不存在的键取值时,返回的是undefined。

    2.判断值是否为空

    var keyVal= $("#key").val(); 
    if(null==keyVal || ""==keyVal){ 
        alert("隐藏域的值为空"); 
    } 

      注意:

        不要使用string.length == 0 判断,如果返回的是undefined,会直接报错,因为undefined没有.length属性。

    3.是否存在判断

      UpdateTime--2017年6月30日07:20:51

      js在作是否存在判断时,有两种方式:

      方式一:不声明!=null或==null

    /*非空判断*/
    if (variable) {
      //要执行的语句  
    }
    /*为空判断*/
    if (!variable) {
      //要执行的语句  
    }

      不适用场景:

        a1. 当variable=0时,if (variable) {},不进该if语句(但是,应该进if判断),更多内容见文章-javascript对于0的解读;

        a2. 当variable=""时,if (variable) {},不进该if语句,但是该进if语句;

    if (undefined == null) {
        alert("执行");
    }
    if (undefined) {
        alert("不执行");
    }     

      注意: js判断某值是否存在可以使用if(param){},java中不能使用这种判断方法,java中类似这样的使用场景,仅用于boolean类型判断

      JAVA举例:

    boolean flag = false;
    /*boolean类型判断*/
    // 方式一:只能用于boolean类型判断
    if (flag) {
        
    }
    // 方式二
    if (flag == true) {
        
    }
    // 这两种方式都对,都表示当flag=true时走if语句,只不过前者是对后者的简化
    /*不能用于非空判断*/
    String str = "测试非空判断";
    // 编译直接报错
    if (str) {
        
    }
    // 只能使用这种方式
    if (null != str) {
        
    }

      方式二:声明!=null或==null 

    /*非空判断*/
    if (null != variable) {
      //要执行的语句  
    }
    /*为空判断*/
    if (null == variable) {
      //要执行的语句  
    }

      注意:

        当variable=undefined时,直接用==null或!=null判断即可。如果是非空判断,不进if语句;若是为空判断,进if语句。  

    举例:

    var aa = 1;
    if (aa) {
        alert("tan")
    }
    /*当aa存在为0的情况时,进行的非空判断*/
    aa = 0;
    // 必须使用这种方式
    if (null != aa) {
        alert("tan")
    }
    // 不能使用这种方式
    if (aa) {
        alert("不弹");
    }

      UpdateTime--2017年7月12日08:12:13

      小结: 

         方式a通常用于判断方法参数是否存在(if-else语句),举例:

    this.showMessage = function(title, url, width, height, type) {
            var object = this;
            this.Title = title ? title : "无标题";
            this.Width = width ? width : 500;
            this.Height = height ? height : 300;
    }

        说明:三元运算符判断是if-else语句的变形方式之一,更多变形见文章:if-else用法  

    UpdateTime--2017年7月26日17:24:08

    总结:

      是否存在判断

    /**
     * 是否存在判断
     */
    if (null != variable) {
        // 要执行的操作
    }

      非空判断

      情景一:

    /**
     * 非空判断(不确定变量是否存在或变量值可能为undefined)
     */
    if (null != variable && "" != variable) {
        // 要执行的操作
    }

      情景二: 

    /**
     * 非空判断(变量值只有两种可能:空字符串"";非空字符串)
     */
    if ("" != variable) {
        // 要执行的操作
    }
  • 相关阅读:
    工业大数据的理论体系
    我的偶像王坚博士,一位执着的学者!
    云计算遇上区块链,会产生怎样的能量和火花?
    管好超时才能做好异步
    “AliOS之父”——阿里巴巴王坚博士
    Centos7开放及查看端口
    直连不同网段
    实施:帧中继
    网线标准
    以太网的帧结构
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/6647378.html
Copyright © 2020-2023  润新知