我试图查看在 javascript 中将字符串转换为数字的哪些方法性能更高,所以我去 jsperf 看看哪种方法最有效。但是,根据初始变量是在 Benchmark.prototype.setup() 函数中还是直接在全局范围内定义,我似乎得到了不同的结果。
关于为什么会发生这种情况有什么想法吗?
最佳答案
发生这种情况是因为范围查找会带来很小的性能损失。
例如:
var foo = 42; // outer scope
(function() { // inner scope
doSomething(foo); // needs to look up `foo` and fetch it from the outer scope
}());
即使您忽略 IIFE 的开销在那里,这仍然肯定比:
var foo = 42;
doSomething(foo); // no scope lookups needed
关于javascript - 为什么 jsperf 根据 HTML 和设置中的准备代码给出不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23505776/