当前位置:首页 > javascript > 正文

怎样判断一个对象是不是JavaScript数组

今天写第二个版本的二级联动下拉框组件,其中涉及到了判断一个对象到底是数组,还是对象,很多问题更进一步深入理解了一点:

那么怎样判断一个对象是不是JavaScript数组,而不是一个对象?为什么这个很重要,比如在php服务器端吐数据给客户端,经常使用json;

< ?php json_encode(array('1','2','3'));

前端js获取的就是纯数组,如果php吐出的是:

< ?php json_encode(array( 'a' => 1,
'b' => 2,
));

这个时候js获取的就是对象;

还是有些差别的;一般的类型判断使用typeof如下:

我们都知道,在 JavaScript 里面,数组也是一种对象,对象也是一种数据类型。所以,在我们试图使用 typeof 运算符获得 arr 这个变量的类型时,只能得到 ‘object’ 这个结果。
那么,怎样判断这个对象是不是数组呢?

这里我们调用了 Object 对象原型的 toString 方法,如果对象是数组,则该函数返回’[object Array]‘。这种方法也可以用来获得任何其他变量的类型,不管变量的实际类型是什么,返回值都是以 object 开头,因为 Nunmber,String,Boolean,Array,Function 都继承自 JavaScript 内置的 Object 对象,而每一个变量,都是与其类型相应的对象的一个实例。这种方法的使用示例如下:

instanceof 运算符用于判断一个变量是否为一个对象的实例。在这里,arr 是 Array 对象的一个实例,所以 arr instanceof Array 会返回 true ,从而我们知道变量 arr 是一个数组。
jQuery.isArray()
别忘了 jQuery !
如果你恰好在项目中使用 jQuery ,那么直接使用 jQuery 内置的用于判断对象是否为数组的函数 jQuery.isArray() 就可以了,简洁而有力!

暂无评论

发表评论