【问题标题】:Can I use triple equals for JavaScript string comparison?我可以使用三等号进行 JavaScript 字符串比较吗?
【发布时间】:2016-02-24 19:20:21
【问题描述】:

这是一个非常基本的问题,我知道,但我无法理解 Google 和 Stack Overflow 发生了什么。

我查看了 here 和 here 来学习如何在 JavaScript 中比较字符串。在他们的回答中都没有提到三等号(===),并表示最好使用自己的函数(str1 < str2 ? -1 : str1 > str2)。

但是,通过 Stack Overflow 中关于 === 的解释(here 和 here),答案包含字符串比较。 从我在这些答案中看到的,=== 确实适用于字符串比较,那么为什么它没有包含在字符串比较答案中?

我只是想扩展我在 JavaScript 方面的知识。

感谢您的任何见解!

【问题讨论】:

  • 是的,=== 可以比较两个字符串,结果是true 或false。您看到的其他示例是在对字符串进行排序列表时比较字符串。
  • 你是对的。谢谢!
  • 在比较你知道的字符串时,我认为使用=== 而不是== 没有任何优势。 === 通常用于比较多种类型的事物。 IE。 '0' !== 0。我认为== 也更快,但我懒得找你的基准来支持它。
  • 只有在值的数据类型很重要时才应该使用 ===,这意味着当它可能导致不良行为时。就像某些东西需要 0 来计算但得到一个 false 或字符串“0”,这可能导致计算不准确或字符串值可能会阻塞进程。如今,三等号在 JavaScript 中被滥用,我不得不修复提交代码中的多个错误,以便在不必要并导致问题时将 === 更改为 ==(这意味着数据类型无关紧要)只是检查 '0' 与 0 的数据类型导致进程阻塞)。

标签: javascript string comparison triple-equals


【解决方案1】:
var str1 = "1";
var str2 = 1;
if (str1 == str2) {
      //Below code executes as it's true.
      console.log("Yes, value of both are equal.");
}

if (str1 === str2) {
     //Below code never executes as it's false.
     console.log("No, both are not equal as type differs.");
}

== 比较值,但 === 比较值和类型。 === 可以用作字符串比较,但如果您确定您只是在比较字符串,那么 == 就足够了。 === 只是一个更好的选择。

【讨论】:

  • 感谢您的示例,但我知道=== 和== 之间的区别,这不是我的问题。
【解决方案2】:

您可以使用这两种方法来比较字符串,只是当您想要比较值和类型时使用===。您还有什么疑问?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2018-01-18
    • 2011-10-16
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多