String.replace是否比ActionScript 3中的String.split ... String.join更快?

Reu*_*ben 6 regex apache-flex string flash actionscript-3

使用起来会更快吗?

myString.replace(/foo/g,"bar")
Run Code Online (Sandbox Code Playgroud)

而不是

myString.split("foo").join("bar")
Run Code Online (Sandbox Code Playgroud)

对于ActionScript 3中的长字符串?或者他们只是两种可比的方法来实现相同的结果?

enz*_*uri 10

我使用gSkinners PerformaceTest对此进行了快速测试.我认为差异最小.我会说这replace()将是首选的选择纯粹因为这是你想要实现的.使用split().join()的意图并不明确.

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Using replace() (10000 iterations)
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
method...................................................ttl ms...avg ms
[function]                                                   57     0.01
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Using split().join() (10000 iterations)
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
method...................................................ttl ms...avg ms
[function]                                                   61     0.01
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Run Code Online (Sandbox Code Playgroud)


Tom*_*Tom 5

大卫R.引用博客Dirkgently链接:

string.split().join()构造是AS2天的剩余部分,其中没有string.replace().在AS3中,使用.split.join是没有意义的,只有那些没有学过新替换函数的人才可能使用它.

此外,根据该博客,时间差异似乎很小.所以,是的,替换应该是一个更清洁的方式来做到这一点.