js中!和!!的区别及用法

1:!可将变量转换成boolean类型,null、undefined和空字符串取反都为true。

var a = null;
if(a){
	console.log(1);
}else{
	console.log(2);
}
//输出:2

if(!a){
	console.log(1);
}else{
	console.log(2);
}
//输出:1

2:!!常常用来做类型判断,在第一步!之后再做逻辑取反运算,在js中新手常常会写这样臃肿的代码:判断变量a为非空、未定义或者非空串才能执行方法体的内容。

var a;
if(a != null && a != undefined && a != ''){
	console.log(1);
}else{
	console.log(2);
}
//输出:2

实际上我们只需要写一个判断表达式:
if(!!a){
	console.log(1);
}else{
	console.log(2);
}
//输出:2

可以总结出来,“!”是逻辑与运算,并且可以与任何变量进行逻辑与将其转化为布尔值,“!!”则是逻辑与的取反运算,尤其后者在判断类型时代码简洁高效,省去了多次判断null、undefined和空字符串的冗余代码。

if (!!item.value) {
param[item.name] = item.value;
}
上面的代码中,!!value , 先将value转成取反的布尔值,将得到的布尔值再次取反,保证value的值为null,undefined和空字符串的情况下,if体中的代码不会执行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值