猿问

JavaScript 判断判断某个对象是Object还是一个Array

JavaScript 判断判断某个对象是Object还是一个Array


慕桂英546537
浏览 2038回答 2
2回答

猛跑小猪

如果你只是用typeof来检查该变量,不论是array还是object,都将返回‘objec'。此问题的一个可行的答案是是检查该变量是不是object,并且检查该变量是否有数字长度(当为空array时长度也可能为0)。然而,参数对象【arguments object】(传给制定函数的所有参数),也可能会适用于上述方法,技术上来说,参数对象并不是一个array。此外,当一个对象有a.length属性的时候,这个方法也不成立。// Real array 正在的数组var my_array = [];// Imposter! 冒名顶替的!var my_object = {};my_object.length = 0;// Potentially faulty 潜在的错误function is_this_an_array(param) {if (typeof param === 'object' && !isNaN(param.length)) {console.log('Congrats, you have an array!');}else {console.log('Bummer, not an array');}}// Works 成功is_this_an_array(my_array);// Works, but is incorrect 成功了,但是不正确is_this_an_array(my_object);

跃然一笑

if(typeof(obj)=="object"){alert("是对象")}else{alert("不是")},但是javascript对于object定义的很宽泛,很多东西javascript都会认为是object,比如Date, String, Boolean, Number, Object, Function, Array, RegExp, Error。判断是不是array,可以使用isArray()来判断if(array.isArray()){"array是数组"}else{"array不是数组"}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答