<分区>
一些 JavaScript 示例使用 !!
来检查对象是否可用
// Check to see if Web Workers are supported
if (!!window.Worker) {
// Yes, I can delegate the boring stuff!
}
为什么这比 if (window,Worker)
更受欢迎,在什么情况下会失败?
标签 javascript
<分区>
一些 JavaScript 示例使用 !!
来检查对象是否可用
// Check to see if Web Workers are supported
if (!!window.Worker) {
// Yes, I can delegate the boring stuff!
}
为什么这比 if (window,Worker)
更受欢迎,在什么情况下会失败?
最佳答案
在这种情况下,它不是可取的,甚至是不同的。 double-bang 将它后面的变量转换为 bool 值(类似于 Boolean() 中的包装
构造函数)。解决 truthy 和 falsey 变量的潜在问题。
但是,将变量单独放在 if()
子句中会做同样的事情(它还会将 if
的括号的内容解析为硬 bool 值) .
双爆炸在其他情况下也很有用,例如如果您想在结束时返回 true
或 false
基于变量的真实性/虚假性的函数。那将是而不是:
if(condition) {
return true;
} else {
return false;
}
你可以简单地写:
return !!condition;
关于javascript - 为什么是!!在检查对象是否为真时更可取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24838589/
相关文章:
javascript - Vue - 获取没有(事件)的元素调用函数
javascript - 如何在单击按钮时使用 javascript 或 jquery 执行 ctrl+c 或复制命令
javascript - WebGL:INVALID_OPERATION:readPixels:ArrayBufferView 对于尺寸来说不够大
javascript - Botpress UMM 使用 Facebook Messenger 逐封发送
javascript - 更改 php 错误中的innerHTML
javascript - 在 maxlength-set 输入上粘贴时检测字符串长度
javascript - Android 4.2 股票浏览器。 Canvas clearRect() 有时不起作用