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利用初始化数据装配模版的实现代码
Nov 17 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
Mar 18 Javascript
用js实现输入提示(自动完成)的实例代码
Jun 14 Javascript
window.navigate 与 window.location.href 的使用区别介绍
Sep 21 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
Jun 24 Javascript
Windows 系统下安装和部署Egret的开发环境
Jul 31 Javascript
jQuery实现checkbox列表的全选、反选功能
Nov 24 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
Aug 16 jQuery
jQuery中图片展示插件highslide.js的简单dom
Apr 22 jQuery
vue的全局变量和全局拦截请求器的示例代码
Sep 13 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
Mar 29 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
Nov 13 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
第十一节 重载 [11]
2006/10/09 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
解决element-ui中下拉菜单子选项click事件不触发的问题
2018/08/22 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
vue插槽slot的简单理解与用法实例分析
2020/03/14 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
python读取txt文件中特定位置字符的方法
2018/12/24 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
python基于三阶贝塞尔曲线的数据平滑算法
2019/12/27 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
路政管理专业推荐信
2013/11/11 职场文书
思想汇报格式
2014/01/05 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
综治工作汇报材料
2014/10/27 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
大学生十八大感想
2015/08/11 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server