当前位置: 移动技术网 > IT编程>开发语言>JavaScript > js字符串转为数字方法parseInt()、减号、乘号、JSON.parse()、Number()的效率比较

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

2019年07月03日  | 移动技术网IT编程  | 我要评论
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()方法和乘号、减号方法相差不大。

 

参考链接:

推荐文章:

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网