【问题标题】:Conditional wrong when trying to match strings [duplicate]尝试匹配字符串时出现条件错误[重复]
【发布时间】:2020-11-03 17:20:32
【问题描述】:

我有获取用户语言环境并将其存储在变量中的代码。然后我有一个条件来检查语言环境是否与特定值匹配 - 见下图:

上面可以看到locale的值为“sv-SE”。

然后我还有一个条件,看看 locale 的值是否是“en-US”|| if 语句中的“en-GB”。

我会排除该语句为假,因为在这种情况下语言环境的值是“sv-SE”,并且与语句中的字符串值不匹配 - 但 if 条件变为 true 并且 if 中的代码语句执行。为什么?

【问题讨论】:

  • x == "a" || "b" 应该是 x == "a" || x == "b"。在条件中拥有自己的非空字符串将始终为 true
  • 请将代码提供为文本,而不是文本图片。
  • "en-GB" 是一个真实值,因此您的 if 语句将始终匹配,因为它不会与任何变量进行比较。
  • 当你做"en-US" || "en-GB"时,这里的结果总是en-US。 OR 返回第一个真值,如果没有找到真值,则返回最后一个。所以你的比较总是在做if(locale === "en-US")

标签: javascript typescript


【解决方案1】:

您错过了与语言环境变量的比较... 尝试这样做,看看它是否有效。

if (locale === 'en-US' || locale === 'en-GB') {
   ...
}

【讨论】:

    猜你喜欢
    • 2021-09-12
    • 2011-09-03
    • 2013-11-22
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多