源代码:
Document 123
方法一: 判断对象的类型(toString)
console.log(Object.prototype.toString.call(obj) === "[object Array]");console.log(Object.prototype.toString.call(arr) === "[object Array]");
方法二: 判断是否是实例化对象(instanceOf)
instanceOf用于判断一个变量是否某个对象的实例。
console.log(obj instanceof Array);
console.log(arr instanceof Array);
// 构造函数是Object的时候, 也是true
console.log(arr instanceof Object);
方法三: 判断构造函数是否是Array(constructor)
console.log(obj.constructor === Array);console.log(arr.constructor === Array);console.log(arr.constructor === Object); // false
方法四: 数组的静态(isArray)
console.log(Array.isArray(obj));console.log(Array.isArray(arr));
注意:
console.log(arr instanceof Object);
可以确定数组是一个对象,但不能判断是否是数组。
obj的的__proto__ 指向HTMLCollection最终指向Object。
HTMLCollection。 他本身是一个对象,一个类数组对象。而并非是一个数组。
直接对HTMLCollection是不能采用对dom元素的操作方式来操作的。比如htmlCL.style.color=”red”;是无效的。原因很简单,htmlCL并不是dom对象,她不具备dom所拥有的属性;
当然我们可以使用数组式选择方式来选择其中的一个元素。比如
htmCl[0];返回的则是对象里面的第一个元素,则可以对他进行操作 如:htmCl[0].style.color=”red”;// 欲知后续如何 且听我下回补充。