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 相关文章推荐
到处都是jQuery选择器的年代 不了解它们的性能,行吗
Jun 18 Javascript
js multiple全选与取消全选实现代码
Dec 04 Javascript
js判断undefined变量类型使用typeof
Jun 03 Javascript
jQuery实现网页抖动的菜单抖动效果
Aug 07 Javascript
JS实现三个层重叠点击互相切换的方法
Oct 06 Javascript
JQuery核心函数是什么及使用方法介绍
May 03 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
Jun 17 Javascript
Angular组件化管理实现方法分析
Mar 17 Javascript
JavaScript中最常用的10种代码简写技巧总结
Jun 28 Javascript
js 监控iframe URL的变化实例代码
Jul 12 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
Vue 组件注册全解析
Dec 17 Vue.js
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实现WEB动态网页静态
2006/10/09 PHP
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
PHP之变量、常量学习笔记
2008/03/27 PHP
PHP 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
深入分析php之面向对象
2013/05/15 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
Smarty环境配置与使用入门教程
2016/05/11 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
PHP+JavaScript实现无刷新上传图片
2017/02/21 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
浅谈python数据类型及类型转换
2017/12/18 Python
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
django 环境变量配置过程详解
2019/08/06 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
民主评议党员自我评议范文2014
2014/09/26 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
python 中yaml文件用法大全
2021/07/04 Python