js字符串转为数字方法parseInt()、减号、乘号、JSON.parse()、Number()的效率比较
程序员文章站
2022-05-26 14:42:32
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()方法和乘号、减号方法相差不大。
参考链接:
推荐文章: