== ===区别,利用!= !==判空。

本文深入探讨了JavaScript中==与===的区别,以及如何正确进行空值判断,通过实例解析了基本类型转换和严格类型比较的过程,并指出在进行空值判断时字符串与空字符串的差异。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值