通常,我通过简单地将它放在if语句中来比较一个布尔值,如下所示:
var foo = 'Foo data';
if ( foo ) {
// Do somethings
}
Run Code Online (Sandbox Code Playgroud)
最近,我刚看到一些人在比较之前将变量转换为boolean:
if ( !!foo ) {
// Do somethings
}
Run Code Online (Sandbox Code Playgroud)
在性能或优势方面有什么不同吗?哪个更优选?
相比之下,没有功能上的差异,正如在这个小提琴http://jsfiddle.net/aeujgovd/1中看到的那样
if(foo){}
if(!!foo){}
Run Code Online (Sandbox Code Playgroud)
使用的唯一理由!! 例如,如果您的API期望一个正确的布尔值而不是像0或1这样的标志,则从truthy/falsey值强制一个布尔值.
var myObj = {flag: 0};
function submitObj(myObj){
myObj.flag = !!myObj.flag;
// ... Ajax submit
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |