js字符串轉爲數字方法parseInt()、減號、乘號、JSON.parse()、Number()的效率比較

var a = '1';
var b = '0x1';

var runTest = function(timeTag, testFunction) {
    console.time(timeTag);
    for (var i = 0; i < 100000000; i++) {
        testFunction();
    }
    console.timeEnd(timeTag);
}
runTest("parseInt(a)", function() {
    parseInt(a);
});
runTest("parseInt(a, 10)", function() {
    parseInt(a, 10);
});
runTest("parseInt(b)", function() {
    parseInt(b);
});
runTest("parseInt(b, 10)", function() {
    parseInt(b, 10);
});
runTest("a * 1", function() {
    a * 1;
});

 runTest("b* 1", function() {
  b * 1;
 });node

runTest("- 0", function() {
    a - 0;
});
runTest("JSON.parse()", function() {
    JSON.parse(a);
});
runTest("Number(a)", function() {
    Number(a);
});
runTest("Number(b)", function() {
    Number(b);
});
parseInt(a): 537.01025390625ms
parseInt(a, 10): 1513.892822265625ms
parseInt(b): 20277.371826171875ms
parseInt(b, 10): 17531.925048828125ms
a* 1: 1101.119140625ms
b* 1: 1193.64794921875ms
- 0: 1126.380126953125ms JSON.parse(): 15990.590087890625ms Number(a): 1172.126953125ms Number(b): 1288.054931640625ms

綜上比較,spa

一、自己是數字的字符串轉爲數字,parseInt()不帶參數直接轉最快;debug

二、字符串既包含數字又包含字母的字符串,parseInt()帶10進制的參數更快,可是是全部方法中最慢的;code

三、若是是純數字組成的字符串,能夠使用JSON.parse()轉爲數字,相比是全部方法中最慢的。blog

四、Number()方法和乘號、減號方法相差不大。字符串

 

參考連接:https://cnodejs.org/topic/5556c5237cabb7b45ee6bca6get

推薦文章:https://blog.fundebug.com/2018/07/07/string-to-number/string

相關文章
相關標籤/搜索