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 相关文章推荐
JavaScript的面向对象(一)
Nov 09 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
Oct 30 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
Jul 17 Javascript
使用JavaScript 编写简单计算器
Nov 24 Javascript
jQuery实现简单的日期输入格式化控件
Mar 12 Javascript
JS实现两表格里数据来回转移的方法
May 28 Javascript
详解JavaScript的Date对象(制作简易钟表)
Apr 07 Javascript
JavaScript必知必会(十) call apply bind的用法说明
Jun 08 Javascript
jQuery学习笔记之入门
Dec 14 Javascript
深入浅出es6模板字符串
Aug 26 Javascript
通过button将form表单的数据提交到action层的实例
Sep 08 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
Nov 06 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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
PHP文件读写操作之文件写入代码
2011/01/13 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
Yii 2.0中场景的使用教程
2017/06/02 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
Jquery插件之多图片异步上传
2010/10/20 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
2013/12/31 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
python 删除大文件中的某一行(最有效率的方法)
2017/08/19 Python
python实现简易云音乐播放器
2018/01/04 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
Python 实现RSA加解密文本文件
2020/12/30 Python
html5 学习简单的拾色器
2010/09/03 HTML / CSS
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
教师实习自我鉴定
2013/12/13 职场文书
同学聚会主持词
2014/03/18 职场文书
运动会闭幕词
2015/01/28 职场文书
大雁塔导游词
2015/02/04 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
复兴之路观后感
2015/06/02 职场文书
行为规范主题班会
2015/08/13 职场文书
安全生产协议书
2016/03/22 职场文书
python实现图片九宫格分割的示例
2021/04/25 Python
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android