欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js字符串转为数字方法parseInt()、减号、乘号、JSON.parse()、Number()的效率比较

程序员文章站 2023-08-12 12:38:40
runTest("b* 1", function() { b * 1; }); 综上比较, 1、本身是数字的字符串转为数字,parseInt()不带参数直接转最快; 2、字符串既包含数字又包含字母的字符串,parseInt()带10进制的参数更快,但是是所有方法中最慢的; 3、如果是纯数字组成的字符 ......
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;
 });

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

综上比较,

1、本身是数字的字符串转为数字,parseint()不带参数直接转最快;

2、字符串既包含数字又包含字母的字符串,parseint()带10进制的参数更快,但是是所有方法中最慢的;

3、如果是纯数字组成的字符串,可以使用json.parse()转为数字,相比是所有方法中最慢的。

4、number()方法和乘号、减号方法相差不大。

 

参考链接:

推荐文章: