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 相关文章推荐
ASP中进行HTML数据及JS数据编码函数
Nov 11 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
Nov 17 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
Oct 11 Javascript
jQuery动画animate方法使用介绍
May 06 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
Mar 05 Javascript
js判断浏览器是否支持html5
Aug 17 Javascript
js判断登录与否并确定跳转页面的方法
Jan 30 Javascript
coffeescript使用的方式汇总
Aug 05 Javascript
JS实现光滑展开合拢的菜单效果代码
Sep 16 Javascript
JS实现控制文本框的内容
Jul 10 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
Oct 30 Javascript
详解如何实现一个简单的Node.js脚手架
Dec 04 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+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
js技巧--转义符&quot;\&quot;的妙用
2007/01/09 Javascript
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
2014/09/11 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
详解Vue2.0 事件派发与接收
2017/09/05 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
分析python服务器拒绝服务攻击代码
2014/01/16 Python
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
Python类的用法实例浅析
2015/05/27 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
Python函数参数操作详解
2018/08/03 Python
python交换两个变量的值方法
2019/01/12 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
python实现超市商品销售管理系统
2019/11/22 Python
Tensorflow实现在训练好的模型上进行测试
2020/01/20 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
台湾菁英交友:结识黄金单身的台湾人
2018/01/22 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
总裁秘书岗位职责
2013/12/04 职场文书
自我鉴定书面格式
2014/01/13 职场文书
乡镇平安建设汇报材料
2014/08/25 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
2015年宣传部个人工作总结
2015/05/14 职场文书
高一语文教学反思
2016/02/16 职场文书
用python实现监控视频人数统计
2021/05/21 Python
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers