Array和Object的区别
区别:
数组表⽰有序数据的集合,对象表⽰⽆序数据的集合。如果数据顺序很重要的话,就⽤数组,否则就⽤对象的好。
数组的数据没有名称'name' 对象的数据有名称 'name' 但是在很多编程语⾔中有个叫关联数组的,这种数组中的数据是有名称的。从上⾯的语句可以看出数组也是对象
function isArrayFour(arr) {
if(typeof(arr) === "object") {
at) {
return 'This is Array'
}else {
return 'This not Array'
}
}
}
console.log(typeof(obj))
console.log(typeof(arr))
console.log(isArrayFour(obj))
console.log(isArrayFour(arr))
区分数组和对象的⽅法
1:通过isarray⽅法
使⽤⽅法: Array.isArray(obj); //obj是检测的对象
2:通过instanceof运算符来判断
instanceof运算符左边是⼦对象(待测对象),右边是⽗构造函数(这⾥是Array),
具体代码:
var obj = {"k1":"v1"};
var arr = [1,2];
console.log("对象的结果:"+(obj instanceof Array));
console.log("数组的结果:"+(arr instanceof Array));
3::使⽤isPrototypeOf()函数
原理:检测⼀个对象是否是Array的原型(或处于原型链中,不但可检测直接⽗对象,还可检测整个原型链上的所有⽗对象)使⽤⽅法: parent.isPrototypeOf(child)来检测parent是否为child的原型;
isPrototypeOf()函数实现的功能和instancof运算符⾮常类似;
具体代码:
Array.prototype.isPrototypeOf(arr)//true表⽰是数组,false不是数组
4:利⽤构造函数constructor
具体代码:
var obj = {"k1":"v1"};
var arr = [1,2];
console.structor == Array)
console.structor == Array)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论