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 相关文章推荐
jQuery 锚点跳转滚动条平滑滚动一句话代码
Apr 30 Javascript
Node.js 的异步 IO 性能探讨
Oct 08 Javascript
JavaScript中的函数嵌套使用
Jun 04 Javascript
js获取地址栏中传递的参数(两种方法)
Feb 08 Javascript
JS中正则表达式要注意lastIndex属性
Aug 08 Javascript
Angular2 组件交互实例详解
Aug 24 Javascript
vue生命周期和react生命周期对比【推荐】
Sep 19 Javascript
node将geojson转shp返回给前端的实现方法
May 29 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
Sep 03 Javascript
如何实现iframe父子传参通信
Feb 05 Javascript
vue框架中props的typescript用法详解
Feb 17 Javascript
详解ES6 扩展运算符的使用与注意事项
Nov 12 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
关于PHP开发的9条建议
2015/07/27 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
Javascript学习指南
2014/12/01 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
基于iScroll实现内容滚动效果
2018/03/21 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python编码总结(编码类型、格式、转码)
2016/07/01 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
keras topN显示,自编写代码案例
2020/07/03 Python
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
MIS软件工程师的面试题
2016/04/22 面试题
奥巴马开学演讲稿
2014/05/15 职场文书
生活小常识广播稿
2014/09/16 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
优秀党员申报材料
2014/12/18 职场文书
python小程序之飘落的银杏
2021/04/17 Python
Python实现位图分割的效果
2021/11/20 Python
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js
windows系统安装配置nginx环境
2022/06/28 Servers