1

在另一个问题中,我遇到了两种不同的字符串替换方法。

一种是 jQuery 方式 $ ("#element").text().replace(',', '.'),另一种是纯 Javascript 方式,首先获取文本然后调用.replace(/,/, '.').

使用 jQuery 方法是否会对性能造成很大影响,或者有任何其他不使用它的原因(假设页面上已经有 jQuery)?

4

4 回答 4

3

这两者本质上是相同的方法。

$('#element').text()返回一个字符串,因此您在两个示例中都调用了 String.prototype.replace()。

我能看到的唯一区别是,在第一种方法中,您使用字符串进行替换,而在第二种方法中,您使用的是正则表达式。在您提供的示例中,字符串方法会更快:

http://jsperf.com/string-replace-vs-regexp

如果您真的想获得最佳性能,我建议使用纯 JavaScript:

document.getElementById( 'element' ).innerText.replace( ',', '.' )

于 2012-04-10T12:51:54.937 回答
0

你实际上在做同样的事情。但是如果要考虑速度的话。在您的 jQuery 选择器上更加精确。

于 2012-04-10T12:58:37.310 回答
0

一般来说,jQuery 几乎总是会变慢,尽管其优势通常大于性能上的损失。在这种情况下,我怀疑 jQuery 只是添加了这个方法来提供一种更方便的方法来做同样的事情。

除非您要进行大量替换电话,否则我什至不会担心。

于 2012-04-10T12:51:58.707 回答
0

两种替换方法完全相同,不可否认,一种是使用字符串,另一种是正则表达式,但底层的 javascript 替换方法是相同的。唯一的区别是检索要执行替换的字符串的方法。

jQuery 检索方法会稍微慢一些,但不会以任何明显的方式出现。

于 2012-04-10T12:50:22.800 回答