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 相关文章推荐
深入探寻javascript定时器
Jan 02 Javascript
js实现Select列表各项上移和下移的方法
Aug 14 Javascript
如何在Linux上安装Node.js
Apr 01 Javascript
JavaScript仿flash遮罩动画效果
Jun 15 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
Aug 17 Javascript
JS实现动态增加和删除li标签行的实例代码
Oct 16 Javascript
微信小程序(三):网络请求
Jan 13 Javascript
Vue.js 60分钟快速入门教程
Mar 28 Javascript
vue+axios 前端实现的常用拦截的代码示例
Aug 23 Javascript
Node.js 使用request模块下载文件的实例
Sep 05 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
Aug 07 Javascript
简述Vue中容易被忽视的知识点
Dec 09 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下目前为目最全的CURL中文说明
2010/08/01 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
关于svn冲突的解决方法
2013/06/21 PHP
简单谈谈favicon
2015/06/10 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
JQuery 学习笔记 选择器之三
2009/07/23 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
JavaScript中使用Callback控制流程介绍
2015/03/16 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
js中的闭包学习心得
2018/02/06 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
2019/10/26 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
Django实现图片文字同时提交的方法
2015/05/26 Python
小小聊天室Python代码实现
2016/08/17 Python
Python选课系统开发程序
2016/09/02 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
在pycharm中显示python画的图方法
2019/08/31 Python
python 导入数据及作图的实现
2019/12/03 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
汽车销售求职自荐信
2013/10/01 职场文书
健康教育评估方案
2014/05/25 职场文书
励志演讲稿500字
2014/08/21 职场文书
党支部四风整改方案
2014/10/25 职场文书
2014年组织部工作总结
2014/11/14 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS