整理了一些,留待自己复习用
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
}