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;
});
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()方法和乘号、减号方法相差不大。
参考链接:https://cnodejs.org/topic/5556c5237cabb7b45ee6bca6
推荐文章:https://blog.fundebug.com/2018/07/07/string-to-number/
js字符串转为数字方法parseInt()、减号、乘号、JSON.parse()、Number()的效率比较的更多相关文章
- jquery过滤特殊字符及js字符串转为数字
//替换特殊字符 $(this).val($(this).val().replace(/[~'!<>@#$%^&*()-+_=:]/g, "")); 方法主要有 ...
- js字符串转换为数字的三种方法。(转换函数)(强制类型转换)(利用js变量弱类型转换)
js字符串转换为数字的三种方法.(转换函数)(强制类型转换)(利用js变量弱类型转换) 一.总结 js字符串转换为数字的三种方法(parseInt("1234blue"))(Num ...
- python用reduce和map把字符串转为数字的方法
python用reduce和map把字符串转为数字的方法 最近在复习高阶函数的时候,有一道题想了半天解不出来.于是上午搜索资料,看了下别人的解法,发现学习编程,思维真的很重要.下面这篇文章就来给大家介 ...
- JavaScript 字符串转为数字
js中字符串转为数字主要4种,分别为转换函数,强制转换,js变量弱类型转换,正则表达式. 1.转换函数 JS中提供了两个转换函数parseInt()和parseFloat(),parseInt()将值 ...
- js字符串与数字之间的比较
//1.纯数字之间比较 console.log(1<3);//true //2.纯字符串比较,先转成ASCII码,按位依次比较 console.log("1"<&quo ...
- js 字符串转换数字
方法主要有三种转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对 ...
- js字符串转换为数字 总结
a. 将一个字符串转换为数字的一种缺少些技巧但是很清楚明白的方法就是:把Number()构造函数作为一个函数来调用: var number = Number(string_value); b. pa ...
- python 将列表中的字符串转为数字
本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: ...
- js字符串常用的方法总结,及其用法
JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a ...
随机推荐
- logistic regression评价方法
1.sensitivity,也叫recall,true positive rate,含义是预测为正向的case中对的(true positive)和所有事实为正向的case的比例. 2.specifi ...
- 使用vs code编写Markdown文档以及markdown语法详解
首先安装vscode工具,下载地址如下: https://code.visualstudio.com/ 在vs code的扩展中安装: Markdown Preview Enhanced 这款插件,安 ...
- DOS(磁盘操作系统)基本命令-思维导图
- Ubuntu 镜像制作 官方教程
rufus工具下载:下载链接 官方教程:官方教程链接 软件界面预览: 资源来源自网络,如果对您有帮助,请点击推荐~. 我尝试了这个方法可以用.电脑重启时,选择从U盘启动,就能安装系统. 参考链接: h ...
- vue+hammer.js完美实现长按、左滑,右滑等触控事件
移动端使用手指直接操作的方式大受用户欢迎,这其中就包括了单点.多点.长按.双击等方式. 这么多触控事件,如果开发者自己实现,会浪费大量的时间和精力,快来看看 hammer.js 让我们轻松了多少吧. ...
- python踩坑系列之导入包时下划红线及报错“No module named”问题
python踩坑系列之导入包时下划红线及报错“No module named”问题 使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下(fileshand ...
- 安装npm install app-inspector -g 提示错误
问题1: npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^ (node_modules\app-inspector\node_mod ...
- 01-day-vuex的使用
知识点1===>简单的使用vuex 进行state取值 使用yarn下载 yarn add vuex -D vuex的包叫做 store 跟pages同级 创建store文件夹,文件夹下有sto ...
- pdfium ppm demo
#include "fpdfview.h" #include <iostream> #include <string> #include <strin ...
- 在安装完jdk以后,发现javac不能执行
安装和配置环境变量都按着流程在,但在最后的检验时,发现Java Java -version 都能运行,唯独Javac 报“不能识别命令”错误信息,下面列出我遇到一个尴尬问题 在path变量里