zoukankan      html  css  js  c++  java
  • == ===区别,利用!= !==判空。

    之前在一个项目中需要对后台传过来的数据进行判断是否为空的处理我写了 if(data !== "")之后被公司前辈看见了给我改成了if(data!="");

    于是做了下面的测试。

    首先试了下==和===的区别

    var a=1;

    var b="1";

    if(a==b){
      alert(true)
    }else{

      alert(false)

    }

    // true

    var a=1;

    var b="1";

    if(a==b){
      alert(true)
    }else{

      alert(false)

    }

    // false

    同样是=号为什么两个判断结果会出现差异那?

    首先 a是number类型而b是string类型

    进行==判断时数据会进行基本类型转换后再进行比较所以输出结果为true

    而===号在进行两数比较时会严格按照连两变量的,数剧类型,number值,string,boolean,函数的引用进行判断。

    这里要注意的是null和undefind

    if(null==undefind)//true

    if(null===undefind)//false

    接下来说一下项目中的“判空”

     在项目中我知道后台传过来的数据为"",需要做if进行“空”值判断于是我就写了下面判断语句

    var a="";
    if(a!=null){
    alert(false);
    }else{

    alert(true);

    }

    //false

    if(a!==null){
    alert(false);
    }else{

    alert(true);

    }

    //flase

    为什么两次返回都为false,判断都没有成功?

    String str1 = null; str引用为空

    String str2 = ""; str引用一个空串

    也就是null没有分配空间,""分配了空间,因此str1还不是一个实例化的对象,而str2已经实例化;
    所以上述判断皆为错误判断。于是我又改成了下面的方式就OK啦;

    if(a!=""){
    alert(false);
    }else{

    alert(true);

    }

  • 相关阅读:
    好文推荐
    高效词频分析
    内网渗透技巧:判断机器真实外网IP的5种方法总结
    禁用substr、substring、mid函数的sql注入脚本
    内网文件传输
    工作
    我是如何逃过所有杀软进行内网端口转发的
    扎克伯格开发的家用AI: Jarvis
    Python初学者之网络爬虫(二)
    Python初学者之网络爬虫
  • 原文地址:https://www.cnblogs.com/pandaer/p/5095499.html
Copyright © 2011-2022 走看看