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 相关文章推荐
根据鼠标的位置动态的控制层的位置
Nov 24 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
Jul 31 Javascript
javascript级联下拉列表实例代码(自写)
May 10 Javascript
可编辑下拉框的2种实现方式
Jun 13 Javascript
jquery validate.js表单验证入门实例(附源码)
Nov 10 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
Jun 21 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
Aug 02 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
Jun 07 Javascript
详解Vue的watch中的immediate与watch是什么意思
Dec 30 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
Jul 07 Javascript
JavaScript this关键字指向常用情况解析
Sep 02 Javascript
JS新手入门数组处理的实用方法汇总
Apr 07 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开发规范手册之PHP代码规范详解
2011/01/13 PHP
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
php绘制一条直线的方法
2015/01/24 PHP
php实现点击可刷新验证码
2015/11/07 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
JQuery下的Live方法和$.browser方法使用代码
2010/06/02 Javascript
JavaScript格式化数字的函数代码
2010/11/30 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
Python与Java间Socket通信实例代码
2017/03/06 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
2019/06/04 Python
python aiohttp的使用详解
2019/06/20 Python
python 修改本地网络配置的方法
2019/08/14 Python
Python多进程编程常用方法解析
2020/03/26 Python
管理工程专业求职信
2014/08/10 职场文书
中秋节活动总结
2014/08/29 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
公司欠款证明
2015/06/24 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
Nginx的反向代理实例详解
2021/03/31 Servers