之前在一个项目中需要对后台传过来的数据进行判断是否为空的处理我写了 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);

}

转载于:https://www.cnblogs.com/pandaer/p/5095499.html

== ===区别,利用!= !==判空。相关推荐

  1. StringUtils isEmpty 和 isBlank 的区别 CollectionUtils判空的方法

    本文讨论的 StringUtils 属于package org.apache.commons.lang; 文章目录 字符串判空检查 "" 和 null 的区别 isEmpty(St ...

  2. java中集合判空_Java中的类型安全的空集合

    java中集合判空 我以前曾在Java Collections类的实用程序上进行过博客撰写,并且特别地在使用Usings Collections Methods上的博客emptyList(),empt ...

  3. 数据类型Map判空 、空字符串、空key值等各种判断方法,全网最详细

    Map集合对于开发人员来说,除了JSON以外,这种key,value存储的方式最熟悉不过了,做项目的过程中,会高频用到Map的数据结构.在业务逻辑层处理中,往往会对Map数据类型进行一些判空的处理,自 ...

  4. 求求你,不要再使用!=null判空了!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 本文来自作者投稿,原作者:上帝爱吃苹果 对于Java程序员 ...

  5. JDK8:使用Optional进行变量判空、集合遍历

    防止 NPE,是程序员的基本修养. NPE(Null Pointer Exception)一直是我们最头疼的问题,也是最容易忽视的地方.NPE常是导致Java应用程序失败的最常见的原因.在日常研发工作 ...

  6. 求求你不要在用!=null判空了

    作者:诗意凌风 | http://suo.im/5t3akh 导语 在没有用Optional判空之前,你是否也像下面的代码一样判空呢?如果是,请往下看,Optional 相对传统判空的优势. java ...

  7. Java使用Optional与Stream来取代if判空逻辑(JDK8以上)

    Java使用Optional与Stream来取代if判空逻辑(JDK8以上) 通过本文你可以用非常简短的代码替代业务逻辑中的判null校验,并且很容易的在出现空指针的时候进行打日志或其他操作. 注:如 ...

  8. 【C 语言】字符串模型 ( 字符串翻转模型 | 抽象成业务函数 | 形参返回值 | 函数返回值 | 函数形参处理 | 形参指针判空 )

    文章目录 一.字符串翻转模型 业务函数 二.完整代码示例 一.字符串翻转模型 业务函数 将上一篇博客 [C 语言]字符串模型 ( 字符串翻转模型 ) 的代码 , 主要业务逻辑 , 抽象成函数 ; 字符 ...

  9. 队列判空_三分钟基础:什么是队列?

    作者 |  小鹿 来源 |  小鹿动画学编程 写在前边 像线程池.异步队列.消息队列等有限的资源容器中,往往存储大量的任务事件,这些大量的任务事件需要进行有条理的进行任务分发以及各种情况处理,为了能够 ...

最新文章

  1. 作为HTC在MWC2012移动世界大会上推出的全新系列产品。
  2. Jquery对象的文档处理,CSS和事件
  3. 深度学习为什么要resize_为什么要学习演讲与口才
  4. 学习在网页中应用大图片背景的20个精美案例
  5. MongoDB学习路线
  6. r psm倾向性匹配_南瓜香料指标psm如何规划季节性广告
  7. mysql批量生成修改表和列注释语句
  8. 蓝牙扫描过程解析_智慧定位系统之蓝牙网关在室内定位技术的原理浅析-新导智能...
  9. verp之增加接近传感器(proximity sensor)
  10. Linux虚拟机出现卡死且无法结束进程的解决办法
  11. javascript 内存和连等赋值
  12. lb开金矿 QDUOJ 数论
  13. Nagios下载安装配置
  14. 微软计算机电源怎么接,电源线,详细教您电脑电源线怎么接
  15. 【聚英云农】无线节水灌溉系统应用智慧农业
  16. 线下商家卖货难、拓客难、引流难,不如学习一下怎么结合O2O电商
  17. 手机里android文件里哪些文件可删除,手机文件夹哪些可以删除?这4个删除它妥妥的...
  18. ps之一寸照片的制作详解(1)
  19. 解决:NoClassDefFoundError: javax/activation/DataSource
  20. Linux通配符的使用详解

热门文章

  1. 浅析网站建设实战经验下的通用原则
  2. mysql总结 博客园_mysql总结
  3. 华为DUA-AL00真机android studio识别不出
  4. 趣谈网络协议笔记-二(第十二讲)
  5. 随机生成50个字段的elasticsearch的测试程序输入
  6. RRDTool 存储原理简介——基于时间序列的环型数据库
  7. openssl 从cer文件中提取公钥
  8. Java——线程安全的集合
  9. P1339 [USACO09OCT]热浪Heat Wave(SPFA)
  10. bzoj 4372: 烁烁的游戏 动态点分治_树链剖分_线段树