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制作简单的三级联动
Mar 18 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
Jun 03 Javascript
JavaScript数组的一些奇葩行为
Jan 25 Javascript
javascript点击按钮实现隐藏显示切换效果
Feb 03 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
Apr 29 Javascript
老生常谈javascript的类型转换
Oct 12 Javascript
Bootstrap基本样式学习笔记之按钮(4)
Dec 07 Javascript
基于Datatables跳转到指定页的简单实例
Nov 09 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
Mar 01 Javascript
使用elementUI实现将图片上传到本地的示例
Sep 04 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
Sep 25 Javascript
微信小程序API—获取定位的详解
Apr 30 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 in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
php重定向的三种方法分享
2012/02/22 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
js 获取浏览器高度和宽度值(多浏览器)
2009/09/02 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
精通Javascript系列之数值计算
2011/06/07 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
深入探讨前端框架react
2015/12/09 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
Vue仿百度搜索功能
2020/12/28 Vue.js
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
python web基础之加载静态文件实例
2018/03/20 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
教师工作表现自我评价
2015/03/05 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python