在JavaScript中比较字符串的最快方法是什么?

use*_*703 5 javascript string performance string-comparison

我有两个字符串,我需要知道它们是否相等。

我以前已经这样做:str1 === str2,但是我想知道是否有一种比较两个字符串的更快方法。

字符串很短,只有15-25个字符。我的问题是,我要遍历许多字符串,并且要花很长时间。

我在这样的结构中有很多比较:

If(str === str1)
{
  do something
}
else if(str === str2)
{
  do something
}
else if(str === str3)
{
  do something
}
Run Code Online (Sandbox Code Playgroud)

字符串没有任何通用的结构或分组。

Wil*_*der 6

比较字符串与a === b是比较字符串本机的最快方法。

但是,如果您可以创建像 那样的字符串对象new String("test"),重用它们并在比较中使用它们,那会更快,因为 JS 引擎只需要进行指针比较,这比(少量)快字符串比较。

请参阅http://jsperf.com/string-vs-object-comparisons

  • 这不测试字符串的值,只测试字符串在内存中的位置 `new String("apple") === new String("apple")` 等于 `false` (3认同)
  • 因为 JS 引擎可能会通过字符串实习来优化。 (2认同)