JavaScript判断是否为数字的4种方法及效率比较


Posted in Javascript onApril 01, 2015

今天针对不同的数值判定方式在chrome上做了一个效率的对比,结果如下:

注意:通过正则表达式仅能用于字符串中的内容是否是纯数值,而不能用于判断是否是数值对象。放在此处仅用于对比。

JavaScript判断是否为数字的4种方法及效率比较

其代码如下:

var ret;
 var o = 1;
 var pattern = /^(-?\d*.?\d*)$/;
 var toStr = {}.toString;
 var array = {};
 array["[object Number]"] = "number";
 
 console.log("各种判断是否数值的速度比较!")
 
 console.log("方法一:pattern.test(o)");
 console.time("first");
 for (var i=0;i<10000;i++){
  ret = pattern.test(o);
 }
 console.timeEnd("first");
 console.log(ret);

 console.log("方法二:o instanceof Number");
 console.time("second");
 for (var i=0;i<10000;i++){
  ret = o instanceof Number;
 }
 console.timeEnd("second");
 console.log(ret);
 
 console.log("方法三:o.constructor == Number");
 console.time("thirth");
 for (var i=0;i<10000;i++){
  ret = o.constructor == Array;
 }
 console.timeEnd("thirth");
 console.log(ret);

 console.log("方法四:array[toStr.call(o)] == 'number'");
 console.time("forth");
 for (var i=0;i<10000;i++){
  ret = array[toStr.call(o)] == "number";
 }
 console.timeEnd("forth");
 console.log(ret);
Javascript 相关文章推荐
轻量级 JS ToolTip提示效果
Jul 20 Javascript
js Event对象的5种坐标
Sep 12 Javascript
JavaScript面向对象程序设计三 原型模式(上)
Dec 21 Javascript
JavaScript位移运算符(无符号) &gt;&gt;&gt; 三个大于号 的使用方法详解
Mar 31 Javascript
基于JS实现的笛卡尔乘积之商品发布
May 13 Javascript
bootstrap实现图片自动轮播
Dec 21 Javascript
Vue计算属性的学习笔记
Mar 22 Javascript
利用JavaScript如何查询某个值是否数组内
Jul 30 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
Aug 07 Javascript
node.js之基础加密算法模块crypto详解
Sep 11 Javascript
微信小程序 导入图标实现过程详解
Oct 11 Javascript
jQuery实现朋友圈查看图片
Sep 11 jQuery
JavaScript操作DOM元素的childNodes和children区别
Apr 01 #Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
Mar 31 #Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
Mar 31 #Javascript
JS显示下拉列表框内全部元素的方法
Mar 31 #Javascript
JS动态改变表格边框宽度的方法
Mar 31 #Javascript
60行js代码实现俄罗斯方块
Mar 31 #Javascript
JS动态修改表格cellPadding和cellSpacing的方法
Mar 31 #Javascript
You might like
各种咖啡的英文名子是什么
2021/03/03 新手入门
php性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
2007/08/19 Javascript
网页中返回顶部代码(多种方法)另附注释说明
2013/04/24 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
jquery.validate提示错误信息位置方法
2016/01/22 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
Python PyQt5标准对话框用法示例
2017/08/23 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
Python3 中作为一等对象的函数解析
2019/12/11 Python
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
TCP/IP的分层模型
2013/10/27 面试题
Unix里面如何在后台运行程序
2016/10/14 面试题
大学学雷锋活动总结
2014/06/26 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
财产分割协议书范本
2014/11/03 职场文书
2014年工商所工作总结
2014/12/09 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书