String.trim() 与检查空格的相对效率

Relative efficiency of String.trim() vs checking for whitespace

我主要是 C 语言开发人员,从事的项目需要在嵌入式设备上使用 JavaScript。我试图找出最有效的方法来处理使用 String.trim() 从字符串末尾去除空格,在空格是不常见的边缘情况的上下文中。

我的问题是用这样的检查包装 String.trim() 调用是否更有效:

if (text.charCodeAt(text.length - 1) === 0x20) {
    text = text.trim();
}

或者让 text.trim() 处理检查。假设尾随空格将出现在大约 1/100 个条目中,并且除了在每个条目上调用 trim 的效率之外没有其他问题。我的猜测是 String.trim() 将在本机代码中实现,因此那里的检查应该至少与对 String.charCodeAt()text.length 的调用一样有效。这适用于 Webkit 或基于 Webkit 的浏览器。

感谢您纵容我的笨拙。

我查看了 WebKit 源代码,似乎调用 String.charCodeAt() 的执行时间与调用 String.trim() 的执行时间相似,但不会产生任何实际结果修剪。我还发现 String.trimRight() 可以节省一张支票,因为我只关心尾随空格。而且由于 String.trimRight() 处理 native-cpp 上下文中的所有内容,我认为可以安全地假设弹回 JavaScript 上下文的效率会降低。