JavaScript开发中有时为何用!!

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

猜你喜欢

转载自bigguo.iteye.com/blog/2274426