if (!!something){} 比 if(something){} 效率高?
今天看pomelo的sample,发现好多地方用到了if(!!something){}
。
var channel = this.channelService.getChannel(name, flag);
if( !! channel) {
users = channel.getMembers();
}
var sessionService = self.app.get('sessionService');
//duplicate log in
if( !! sessionService.getByUid(uid)) {
next(null, {
code: 500,
error: true
});
return;
}
所以不耻下问
←_← 忽略我的小学语文水平,我错了!_!。。。。
7 回复
我觉得你这个成语不能这么用,高中语文典型错误啊。
我觉得两个感叹号应该是代码风格的问题,表示先强制转换为布尔再判断。 因为我简单测试了一下,还是不转换快。。。
楼主水平很高啊,都能下问了啊:)
!!(var) 可以把任何 JavaScript 表达式转换为等价的布尔变量。这里 var 可以是任何变量,比如数字,函数或者对象。
!!如果作为 unary 操作单值,确实没有必要,可以直接用 if (var) 来判断; 但是如果是要做比较的话,首先使用严格的 === 可以避免很多预想不到的等价。
!!最大的作用是要预防 NaN,这是 JS 的一个坑之一,因为 NaN === NaN //返回 false,但是 !!NaN === !! NaN 就是 true,符合常人逻辑了
@russj 感谢!
@otinn 讨厌~别笑
楼主看代码很细心啊,赞一个