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);

    }

  • 相关阅读:
    php 框架选择
    转:从框架看PHP的五种境界及各自的薪资待遇(仅限于二三线城市,一线除外)
    百度云怎样提升下载速度
    .net体系与java体系
    绘制3D的js库
    Canvas游戏计算机图形教程
    Unity Manual 用户手册
    在windows系统下安装oracle 11g
    Three.js学习笔记
    php面试题之二——数据结构和算法(高级部分)
  • 原文地址:https://www.cnblogs.com/pandaer/p/5095499.html
Copyright © 2011-2022 走看看