【发布时间】:2015-04-12 00:21:31
【问题描述】:
我尝试使用以下 jsperf 来探索加号 (+) 转换比 parseInt 更快,结果让我感到惊讶:
准备代码
<script>
Benchmark.prototype.setup = function() {
var x = "5555";
};
</script>
解析样本
var y = parseInt(x); //<---80 million loops
加样
var y = +x; //<--- 33 million loops
原因是因为我使用“Benchmark.prototype.setup”来声明我的变量,但我不明白为什么
见第二个例子:
Parse vs Plus (local variable)
<script>
Benchmark.prototype.setup = function() {
x = "5555";
};
</script>
解析样本
var y = parseInt(x); //<---89 million loops
加样
var y = +x; //<--- 633 million loops
有人能解释一下结果吗?
谢谢
【问题讨论】:
-
如果核心代码在这里,而不是通过链接引用,您将在此处获得更好的响应(我给了您+1 BTW,因为这是一个有趣的问题)。
-
一个有趣的问题,但更多的是关于 jsperf 和测试用例,而不是
parseInt与+。我认为你的标题有点误导。 -
我编辑了这个问题。我希望现在更好
-
没人知道为什么会这样?
标签: javascript performance type-conversion parseint