【问题标题】:Why inputStr === "" is always false?为什么 inputStr === "" 总是假的?
【发布时间】:2013-03-05 07:49:54
【问题描述】:

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

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

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

【问题讨论】:

  • === 检查值和数据类型。 "5" == 5 返回真。但是 "5" === 5 返回 false 因为数据类型不同。同样在您的上述问题中,如果未输入任何内容,则会生成不等于字符串的空数据类型。所以,它返回 false。

标签: javascript visual-studio resharper


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    也就是说,只有在测试必须为真的情况下才能访问该代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多