为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕桂英546537 2019-03-12 13:08:01
JavaScript 判断判断某个对象是Object还是一个Array
查看完整描述

2 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

如果你只是用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);



查看完整回答
反对 回复 2019-03-20
?
跃然一笑

TA贡献1826条经验 获得超6个赞

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不是数组"}



查看完整回答
反对 回复 2019-03-20
  • 2 回答
  • 0 关注
  • 2037 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信