JavaScript开发中有时为何用!!

本文探讨了JavaScript中使用!!运算符的原因及效果。通过两次取反操作将目标值转换为布尔类型,若目标值为null或undefined则返回false。这种方式能够清晰地区分目标变量是否已初始化。

JavaScript开发中有时为何用!!

 在JS开发中,有时会见到如下形式的代码:

var has_init = !!target.init;     

为何不直接用var has_init = target.init;呢?

解释:

!运算符作用于null、undefined时的结果都是true,故对于null、undefined使用两次!,结果就是false。表明未有init代码。也就是区分了:

◆明确定义了target中的init值,自然has_init就是target.init;

如果没有设置target中的init值,has_init再经过两次!之后,就成为false了,而不是null或undefined了。

 

 

var has_init = !!target.init; 
//等价于
var has_init = target.init || false;

 

 另外,可参考:

http://www.css88.com/archives/4545

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值