javascript - parseInt() 比 toString() 快吗?

标签 javascript performance

我正在检查数字数组是否为 pandigital在 JavaScript 中。简而言之,这意味着如果它是一个 9 位数字,那么它必须具有所有数字 1-9。我已经对数字数组进行了排序,并且有以下循环:

for(var i = 0; i < 9; i++) {
    if(parseInt(digits[i]) != i+1) {
        return false;
    }
}

但我只是想知道以下是否会更快:

for(var i = 0; i < 9; i++) {
    if(digits[i] != (i+1).toString()) {
        return false;
    }
}

我不确定哪个会更快。我觉得转换为字符串比解析为数字更快。我已经尝试运行一些测试,但我还没有真正得出任何结论:我的电脑很旧,结果到处都是。

哪个会更快,为什么?这种速度差异会随着数字的增加而增加吗?

编辑

digits 是经过排序的数字字符串数组,例如:

var digits = [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ];

最佳答案

根据 jsperf.com,parseInt() 更快(至少在我的电脑和 chrome 上)。

自己测试一下:

TEST

enter image description here

关于javascript - parseInt() 比 toString() 快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35563511/

相关文章:

jquery - 加速 jQuery 移动 - 页面缓存并从不在 View 中的内容中删除 HTML

JavaScript 变量作用域

javascript - 所有移动设备(浏览器)的锁定屏幕方向

javascript - .Each function JavaScript 在 XML 中迭代两次

c++ - 使用 n 维 C++ Vector 类实现算术运算符重载的更好方法?

ruby - 如何发送响应但继续在 Sinatra 中执行?

perl - 如何有效地计算覆盖 Perl 给定范围的范围?

javascript - 对 json 数据进行分组并对值求和

JavaScript 等价于 printf/String.Format

performance - Hive - 如何以最佳性能重用 Hive 中的子查询