在我的项目中,jshint抱怨!!
,我需要将字符串转换为布尔值
var x = 'true';
if ( !!x === true ) { ... }
因此,jshint引发以下问题:
line 35 col 20 Confusing use of '!'.
我应禁用哪个jshint-option来允许此操作?还是不可能?
[问题似乎出在===
。简单地
if (!!x )
工作正常。
我认为“令人困惑”的部分是!!foo === bar
难以按优先级进行解析(是(!!foo)==bar
还是!(!foo==bar)
?)。
警告:这不会评估您想要的方式
var myBool = Boolean("false"); // == true
var myBool = !!"false"; // == true
如果您不希望jshint对您大吼大叫,那么在比较bool ==时也不需要===是相同的。但是,如果您要确定布尔值,则根本不需要进行比较。
if(myBool)
{
//some code here
}
或
if(!myBool)
{
//some code here
}
为了获得布尔值,您可能只想进行字符串比较
var mybool = aString == "true";
应该可以为您提供所需的东西,然后您就可以:
if(myBool)
{
//some code here
}
要真正回答这个问题,不提供解决方法,可以通过以下方式禁用jshint中的此错误:>
-W018