我的应用程序中有这个JavaScript代码:
var boo = function(inputStr) {
if (!inputStr || inputStr === "") {
throw new Error("Input is null or empty.");
}
return new Aftamat(inputStr);
};
Resharper说inputStr === ""
总是false
。为什么?这是Resharper的错误吗?
答案 0 :(得分:2)
如果字符串为空,则表示错误...所以!inputStr
将返回true,实际上,如果您的字符串为空,则永远不会检查您的inputStr === ""
答案 1 :(得分:1)
可能是因为如果inputStr === ""
为真,那么!inputStr
也是如此,但如果!inputStr
为真,那么inputStr === ""
将永远不会被检查。
即只有在测试必须为真的情况下才会达到该代码。