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』限制Input只能输入数字实现思路及代码
Apr 22 Javascript
页面加载完毕后滚动条自动滚动一定位置
Feb 20 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
Mar 26 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
Jun 26 Javascript
详解JavaScript逻辑Not运算符
Dec 04 Javascript
Javascript基于AJAX回调函数传递参数实例分析
Dec 15 Javascript
利用js编写响应式侧边栏
Sep 17 Javascript
BootStrap入门教程(三)之响应式原理
Sep 19 Javascript
BootStrap selectpicker后台动态绑定数据的方法
Jul 28 Javascript
用vue-cli开发vue时的代理设置方法
Sep 20 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
May 06 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
Jul 20 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
第十三节 对象串行化 [13]
2006/10/09 PHP
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
2016/12/13 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
[03:26]《DAC最前线》之EG经理自述DOTA2经历
2015/02/02 DOTA
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
python实现自动登录
2018/09/17 Python
python for 循环获取index索引的方法
2019/02/01 Python
pytorch 自定义数据集加载方法
2019/08/18 Python
Python Selenium参数配置方法解析
2020/01/19 Python
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
家长会主持词开场白
2014/03/18 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
详解Python中下划线的5种含义
2021/07/15 Python
Java对文件的读写操作方法
2022/04/29 Java/Android