在 JavaScript 中测试两个字符串是不是完全匹配的最快方法
Posted
技术标签:
【中文标题】在 JavaScript 中测试两个字符串是不是完全匹配的最快方法【英文标题】: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)
有没有更好的方法来做到这一点?
【问题讨论】:
【参考方案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
。以上是关于在 JavaScript 中测试两个字符串是不是完全匹配的最快方法的主要内容,如果未能解决你的问题,请参考以下文章
类似于 dojo DOH 的 Javascript 测试框架