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 相关文章推荐
刷新时清空文本框内容的js代码
Apr 23 Javascript
利用javascript/jquery对上传文件格式过滤的方法
Jul 25 Javascript
9行javascript代码获取QQ群成员具体实现
Oct 16 Javascript
javascript获取当前鼠标坐标的方法
Jan 10 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
Oct 28 Javascript
分享Javascript实用方法二
Dec 13 Javascript
js实现tab选项卡切换功能
Jan 13 Javascript
js实现文本上下来回滚动
Feb 03 Javascript
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
Sep 05 Javascript
layui 实现加载动画以及非真实加载进度的方法
Sep 23 Javascript
vue在图片上传的时候压缩图片
Nov 18 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
php IP及IP段进行访问限制的代码
2008/12/17 PHP
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
Js组件的一些写法
2010/09/10 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
python 爬取小说并下载的示例
2020/12/07 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
eBay加拿大站:eBay.ca
2019/06/20 全球购物
冬季安全检查方案
2014/05/23 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
go类型转换及与C的类型转换方式
2021/05/05 Golang
前端JavaScript大管家 package.json
2021/11/02 Javascript
Python时间操作之pytz模块使用详解
2022/06/14 Python
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript