为什么inputStr ===“”总是假的?

时间:2013-03-05 07:49:54

标签: javascript visual-studio resharper

我的应用程序中有这个JavaScript代码:

var boo = function(inputStr) {
    if (!inputStr || inputStr === "") {
        throw new Error("Input is null or empty.");
    }
    return new Aftamat(inputStr);
};

Resharper说inputStr === ""总是false。为什么?这是Resharper的错误吗?

2 个答案:

答案 0 :(得分:2)

如果字符串为空,则表示错误...所以!inputStr将返回true,实际上,如果您的字符串为空,则永远不会检查您的inputStr === ""

答案 1 :(得分:1)

可能是因为如果inputStr === ""为真,那么!inputStr也是如此,但如果!inputStr为真,那么inputStr === ""将永远不会被检查。

即只有在测试必须为真的情况下才会达到该代码。