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 相关文章推荐
OfflineSave离线保存代码再次发布使用说明
May 23 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
May 23 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
Jun 06 Javascript
JS中产生标识符方式的演变
Jun 12 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
Jan 28 Javascript
XML、HTML、CSS与JS的区别整理
Feb 18 Javascript
详解Vue中添加过渡效果
Mar 20 Javascript
Vue实现动态响应数据变化
Apr 28 Javascript
浅谈vue中.vue文件解析流程
Apr 24 Javascript
angularjs实现的购物金额计算工具示例
May 08 Javascript
Angular父子组件通过服务传参的示例方法
Oct 31 Javascript
Express 配置HTML页面访问的实现
Nov 01 Javascript
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
php 求质素(素数) 的实现代码
2011/04/12 PHP
360通用php防护代码(使用操作详解)
2013/06/18 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
一段好玩的JavaScript代码
2006/12/01 Javascript
分享别人写的一个小型js框架
2007/08/13 Javascript
js 数组操作代码集锦
2009/04/28 Javascript
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
Python 返回汉字的汉语拼音
2009/02/27 Python
Python自动连接ssh的方法
2015/03/07 Python
在Python下尝试多线程编程
2015/04/28 Python
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
简单学习Python多进程Multiprocessing
2017/08/29 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
Python操作mongodb的9个步骤
2018/06/04 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
公司董事长职责
2013/12/12 职场文书
会计专业求职信
2014/08/10 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
党员群众路线剖析材料
2014/10/08 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
货款欠条范本
2015/07/03 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书