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 相关文章推荐
js报错 Object doesn't support this property or method的原因分析
Mar 31 Javascript
js模拟点击以提交表单为例兼容主流浏览器
Nov 29 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
Dec 30 Javascript
js控制容器隐藏出现防止样式变化的两种方法
Apr 25 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
Jun 09 Javascript
jquery实现通用版鼠标经过淡入淡出效果
Jun 15 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
Mar 03 Javascript
基于Node.js的WebSocket通信实现
Mar 11 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
Aug 18 Javascript
vue最简单的前后端交互示例详解
Oct 11 Javascript
JavaScript文本特效实例小结【3个示例】
Dec 22 Javascript
从零搭一个自用的前端脚手架的方法步骤
Sep 23 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
大师制作的中短波矿石收音机
2020/04/02 无线电
PHP 高手之路(一)
2006/10/09 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
PHP统一页面编码避免乱码问题
2015/04/09 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
python自然语言编码转换模块codecs介绍
2015/04/08 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
python解释器spython使用及原理解析
2019/08/24 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
int和Integer有什么区别
2013/05/25 面试题
高中校园广播稿
2014/01/11 职场文书
开会迟到检讨书
2014/02/03 职场文书
房地产促销活动方案
2014/03/01 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
校长新学期致辞
2015/07/30 职场文书
《植树问题》教学反思
2016/03/03 职场文书
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python
Golang 切片(Slice)实现增删改查
2022/04/22 Golang
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android