在 if 语句中通过双重否定 (!!) 转换为布尔值是不必要的,例如,因为这些 if 语句是等价的:
if (!!foo) {
// ...
}
if (foo) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是如果通过 !! 转换为布尔值呢?是在 return 语句吗?像这儿:
nameToSomething : function(someName){
if (someName) {
return !!this._var[someVar] ? this._var: undefined;
}
return undefined;
},
Run Code Online (Sandbox Code Playgroud)
!!this._mServicesByName[someName] 作为回报是不是和this._mServicesByName[someName]这里一样?为什么?
用简单的英语解释为什么它不同/相同,以及如何在 JavaScript 中规避此规则的示例,因此我的 linter 不会“看到”它将非常感激。
提前谢谢了。