我正在阅读“发现流星”, 在第7章中有代码:
Posts.allow({
insert: function(userId, doc) {
// only allow posting if you are logged in
return !! userId; ///// <<==== what does "!!" means?
}
});
由于
答案 0 :(得分:3)
Tom Ritter精心总结为
// Maximum Obscurity:
val.enabled = !!userId;
// Partial Obscurity:
val.enabled = (userId != 0) ? true : false;
// And finally, much easier to understand:
val.enabled = (userId != 0);
因此要进行布尔运算然后进行双重否定
答案 1 :(得分:1)
!将任何正值,true或现有变量(如字符串和数组)转换为false,将任何negative,undefined,null或false转换为true。 !适用两次。
在此上下文中,如果变量userId存在且不为空,null或false,则返回true。
答案 2 :(得分:0)
它只是喜欢将变量类型更改为boolean
!! userId;
// same as
userId ? true:false;