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实现页面打印的三种方法
Mar 05 Javascript
js创建对象的几种常用方式小结(推荐)
Oct 24 Javascript
JavaScript实现关键字高亮功能
Nov 12 Javascript
javascript实现随机读取数组的方法
Aug 03 Javascript
每天一篇javascript学习小结(Boolean对象)
Nov 12 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
Jan 09 Javascript
JavaScript学习笔记之数组求和方法
Mar 23 Javascript
JavaScript 数组- Array的方法总结(推荐)
Jul 21 Javascript
几句话带你理解JS中的this、闭包、原型链
Sep 26 Javascript
AngularJS入门教程之多视图切换用法示例
Nov 02 Javascript
JS插件plupload.js实现多图上传并显示进度条
Nov 29 Javascript
vue 不使用select实现下拉框功能(推荐)
May 17 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
实现树状结构的两种方法
2006/10/09 PHP
php下实现农历日历的代码
2007/03/07 PHP
PHP禁止页面缓存的代码
2011/10/23 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
俄罗斯眼镜网: optikaworld
2016/07/31 全球购物
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
.NET常见笔试题集
2012/12/01 面试题
旅游项目开发策划书
2014/01/18 职场文书
批评与自我批评范文
2014/10/15 职场文书
2014年乡镇安全生产工作总结
2014/12/02 职场文书
试用期辞职信范文
2015/03/02 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
时尚女魔头观后感
2015/06/04 职场文书
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android