Javascript 为什么要用这个“&引用;?

Javascript 为什么要用这个“&引用;?,javascript,performance,data-structures,Javascript,Performance,Data Structures,代码如下: var a = {}; if(!!!a[tabType]){ a[tabType] = []; a[tabType].push([self,boxObj]); }else{ a[tabType].push([self,boxObj]); } 我想!!![tabType]等于!a[选项卡式] 为什么使用“!!!”而不是“!” 谢谢大家! 这个构造强制转换为布尔值。我看不出这有什么意义。这让读者更清楚了。我会在它周围放一些空格,就像这样: if( ! a[tabTyp

代码如下:

var a = {};
if(!!!a[tabType]){
   a[tabType] = [];
   a[tabType].push([self,boxObj]);
}else{
   a[tabType].push([self,boxObj]);
}
我想!!![tabType]等于!a[选项卡式] 为什么使用“!!!”而不是“!”


谢谢大家!

这个
构造强制转换为布尔值。我看不出这有什么意义。

这让读者更清楚了。我会在它周围放一些空格,就像这样:

if( ! a[tabType]){

但看起来这位程序员非常反对空格。

这根本没有意义。这完全等同于使用

因为你真的,真的希望它是假的!;-)没有真正的关联,但这可以分解为:
var a={};a[tabType]=a[tabType]| |[];a[tabType].push([self,boxObj])我更喜欢这样的标题:为什么不使用!!!操作员?那是错误的,应该是
用于转换为超级布尔值。令人惊讶的是,有多少人投票支持完全错误的答案。否决了他们,你就站起来了。这只是为了展示大家是如何认为他们知道javascript的,但实际上很少有人知道。@Matt Briggs我相信你知道,但是
也适用于其他语言,所以我想会有更多的人知道它。@Matt Briggs:x1a4可能有点不合适,但目的是正确的:
强制强制强制为布尔值,因此
很有用,甚至
很有用,但是
有什么意义呢?我们看不到任何东西。@thanatos:是的,但至少他说的是真的。有人利用了机会!!,然后有人不想了,不知道是什么!!这样做只是又一次爆炸。在我发布这篇文章的时候,雅各布的答案有7张赞成票,而这张没有,这就是为什么我做出了我的决定comment@Earlz:那还有什么别的用呢?其他答案已经解释说它没有计算的目的。。。阿美,编码员只是想把它设计得更有风格一点,或者像杰里米建议的那样让它变得更明显。@inc我猜他们这样做是为了自娱自乐,而我猜他们是想“让它变得更明显”<代码>
只会让看到它的人感到困惑,而不是让他们思考
哦,显然这不是一个符号。这与执行
******printf
相同;这看起来很有趣,但大多数情况下只会让看到它的人感到困惑。我会猜测他们不知道自己在做什么@incred@Mich。这就相当于把
放在if(x==true==true)
上。只有当有人盲目地试图让一段(通常是复制和粘贴的)代码为他们工作时,他们才会这样做。