判断是否是数组

整理了一些,留待自己复习用

1. instanceof

var a = {
    "name":'fangxiaoming',
    "age": 19,
}   
var b = [1,2,3,4];
console.log(a instanceof Array); //false
console.log(b instanceof Array); //true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7



2.Array.isArray

Array.isArray([1, 2, 3]);  // true
Array.isArray({foo: 123}); // false
Array.isArray(undefined);  // false
  • 1
  • 2
  • 3
  • 4

3.原型链:constructor

var list = [1,2,3,4,5];
console.log(list.constructor === Array); //true
  • 1
  • 2

为什么 array.constructor 就等于 Array那? 
我们换一种方式创建数组就明了;

var mylist = new Array(1,2);                                                     
// 所以有:                                                                          
console.log( mylist.__proto__ === Array.prototype )                              
// 所以有:                                                                          
console.log( mylist.__proto__.constructor === Array.prototype.constructor );     
// 所以有:                                                                          
console.log( mylist.__proto__.constructor === Array );                           
// 所以有:                                                                          
console.log( mylist.constructor === Array );                                     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

4.array特征

function isArray(obj){                                                                 
    return obj && //排除 null , undefined                                                
           typeof obj ==='object' && //排除number, string,boolean                        
           obj.propertyIsEnumerable(length); //排除object                                
                           
}                                                                                      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值