【问题标题】:Fastest way to test two strings for exact match in JavaScript在 JavaScript 中测试两个字符串是否完全匹配的最快方法
【发布时间】:2013-09-06 10:38:06
【问题描述】:

我想比较 JavaScript 中的两个字符串,以测试它们是否完全相同。 哪种方法是最好(最快)的?

现在,我正在考虑中的任何一个

if(string1.localeCompare(string2) == 0) {}

或者干脆

if(string1 == string2)

有没有更好的方法来做到这一点?

【问题讨论】:

    标签: javascript string-matching


    【解决方案1】:

    如果您想检查它们是否完全相同,我可能会使用strict equality,即它们也是相同的类型,以防万一。

    if (string1 === string2)
    

    【讨论】:

      【解决方案2】:

      检查this fiddle* 并找出自己哪个更快。

      *如果链接将来失效:== > === > String.localeCompare(在 Chrome 上测试)。

      【讨论】:

      • 但是,正如答案和评论中所述,== 甚至不满足检查完全匹配的要求,至少在不知情的情况下不满足。
      • @IngoBürk 是的,我知道。但是对于不需要严格比较的情况, == 仍然更快。这只是一个信息,我展示了速度,选择方法只取决于你:)
      • 正是我所需要的。 @IngoBürk,虽然您严格正确,但我认为确切的含义是高度上下文相关的。
      【解决方案3】:

      我不确定if(string1 == string2) 是否还有优化空间。这是最好的方法。

      【讨论】:

      • 除非你已经知道它们是字符串,否则使用=== 是必不可少的。
      【解决方案4】:
      if (typeof string1=="string" && typeof string2=="string" && string1 === string2)
      

      没有转义方法:)

      【讨论】:

      • 我喜欢这个想法,但你可以省略第二个typeof
      猜你喜欢
      • 1970-01-01
      • 2018-07-05
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      相关资源
      最近更新 更多