注意:它实际上是if(!!condition)和if(condition)
有什么区别?虽然我明白什么是!!表示(double not),出于同样的原因,它在MDN文档中的使用对我来说没有意义:
if (!!window.Worker) {
...
}
在这种情况下,这不是完全相同的吗?
if (window.Worker) {
...
}
转换为布尔值对我来说没有意义,因为if
只会在window.Worker
存在的情况下执行。说它是if()
条件的True
或Object
(我认为)是一样的。
那么,为什么这里使用!!
呢?或者,为什么window.Worker
在if()
中被强制转换为布尔值?
是完全一样的。没什么可补充的。
它可能被用来强调window.Worker
属性(预期是一个函数)被强制转换为布尔值以检测其存在,而不是看起来像一个被遗忘的()
调用。不管怎样,它现在已经消失了。