哪一个是更好的方法:变量.split( "_" );或变量.split(/_/);?



在引号和斜杠之间哪一个更好,不仅在split方法中,而且在其他方法中搜索变量内的字符串?

variable.split("_");
对于这样的单个字符搜索,

是最好的,因为它可以避免创建RegEx。

第一个在String上分裂,第二个在RegExp上分裂。

在这种情况下,它们在功能上是等价的。然而,我将使用String,因为RegExp是不必要的。

我会在可能的地方使用String,在需要的地方使用RegExp

可能需要对它进行基准测试,但我认为字符串方法更快…

jsperf test

可以看到split(' ')更快

有一个很好的理由,在可能的情况下更喜欢字符串,这是split()在IE中被正则表达式打破。请参阅JavaScript正则表达式大师Steven Levithan的博客文章:http://blog.stevenlevithan.com/archives/cross-browser-split

因此,以下内容将在所有浏览器中工作:

"1__2".split("_"); // returns ["1", "", "2"]

…而下面返回不一致的结果:

"1__2".split(/_/); // ["1", "2"] in IE, ["1", "", "2"] in others

最新更新