首页 > 编程语言 > 详细

如何判断一个变量是不是数组

时间:2017-02-26 00:06:34      阅读:179      评论:0      收藏:0      [点我收藏+]

检测数组类型方法

1.Object.prototype.toString

 

Object.prototype.toString的行为:首先,取得对象的一个内部属性[[Class]],然后依据这个属性,返回一个类似于"[object Array]"的字符串作为结果(看过ECMA标准的应该都知道,[[]]用来表示语言内部用到的、外部不可直接访问的属性,称为“内部属性”)。利用这 个方法,再配合call,我们可以取得任何对象的内部属性[[Class]],然后把类型检测转化为字符串比较,以达到我们的目的。

1 function isArrayFn (o) { 
2 return Object.prototype.toString.call(o) === ‘[object Array]‘; 
3 } 
4 var arr = [1,2,3,1]; 
5 alert(isArrayFn(arr));// true 

2.Array.isArray()
ECMAScript5将Array.isArray()正式引入JavaScript,目的就是准确地检测一个值是否为数组。IE9+、 Firefox 4+、Safari 5+、Opera 10.5+和Chrome都实现了这个方法。但是在IE8之前的版本是不支持的。 

3.判断是否是数组的兼容写法

 

 1 var arr = [1,2,3,1]; 
 2 var arr2 = [{ abac : 1, abc : 2 }]; 
 3 function isArrayFn(value){ 
 4 if (typeof Array.isArray === "function") { 
 5 return Array.isArray(value); 
 6 }else{ 
 7 return Object.prototype.toString.call(value) === "[object Array]";//兼容IE8及以下版本 
 8 } 
 9 } 
10 alert(isArrayFn(arr));// true 
11 alert(isArrayFn(arr2));// true 

 

 

 

如何判断一个变量是不是数组

原文:http://www.cnblogs.com/ly-blogs/p/6443270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!