JavaScript判断是否为数组的3种方法及效率比较


Posted in Javascript onApril 01, 2015

今天针对不同的数组判定方式在chrome上做了一个效率的对比,结果如下:

JavaScript判断是否为数组的3种方法及效率比较

其代码如下:

  

var ret;
 var o = [1,2,3];
 var toStr = {}.toString;
 var array = {};
 array["[object Array]"] = "array";
 
 console.log("各种判断是否数组的速度比较!")
 
 console.log("方法一:Array.isArray(o)");
 console.time("first");
 for (var i=0;i<10000;i++){
  ret = Array.isArray(o);
 }
 console.timeEnd("first");
 console.log(ret);

 console.log("方法二:o instanceof Array");
 console.time("second");
 for (var i=0;i<10000;i++){
  ret = o instanceof Array;
 }
 console.timeEnd("second");
 console.log(ret);
 
 console.log("方法三:o.constructor == Array");
 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)] == 'array'");
 console.time("forth");
 for (var i=0;i<10000;i++){
  ret = array[toStr.call(o)] == "array";
 }
 console.timeEnd("forth");
 console.log(ret);
Javascript 相关文章推荐
7个JS基础知识总结
Mar 05 Javascript
javascript记录文本框内文字个数检测文字个数变化
Oct 14 Javascript
JS实现简单路由器功能的方法
May 27 Javascript
JS简单限制textarea内输入字符数量的方法
Oct 14 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
Feb 23 Javascript
AngularJS基础 ng-cloak 指令简单示例
Aug 01 Javascript
前端框架Vue.js构建大型应用浅析
Sep 12 Javascript
详解vue-cli中配置sass
Jun 21 Javascript
vue.js 实现点击展开收起动画效果
Jul 07 Javascript
小程序实现多列选择器
Feb 15 Javascript
jQuery创建折叠式菜单
Jun 15 jQuery
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
Oct 22 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
Apr 01 #Javascript
JavaScript判断是否为数字的4种方法及效率比较
Apr 01 #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
You might like
PHP文件读写操作之文件读取方法详解
2011/01/13 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
如何让动态插入的javascript脚本代码跑起来。
2007/01/09 Javascript
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
js动态添加表格数据使用insertRow和insertCell实现
2014/05/22 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
javascript对浅拷贝和深拷贝的详解
2016/10/14 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
python openpyxl使用方法详解
2019/07/18 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
Python实现Keras搭建神经网络训练分类模型教程
2020/06/12 Python
HTML5 解析规则分析
2009/08/14 HTML / CSS
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
JAKO-O德国野酷台湾站:德国首屈一指的婴幼童用品品牌
2019/01/14 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
送给程序员的20个Java集合面试问题
2014/08/06 面试题
2015年教研组工作总结
2015/05/04 职场文书
合作意向书怎么写
2019/06/24 职场文书