如何准确的判断一个对象是数组
我们都知道对于null、array、function、object来说,使用typeof都会统一返回object字符串。那么有哪些方法可以准确的判断一个对象是数组呢。
1.Object.prototype.toString.call()
//分别定义两个对象
var _arr = [1,2,3,4];
var student = { name: 'Tom', age: 18 }
Object.prototype.toString.call(_arr) //返回"[object Array]"
Object.prototype.toString.call(student) //返回"[object Object]"
2.instanceof Array
//分别定义两个对象
var _arr = [1,2,3,4];
var student = { name: 'Tom', age: 18 }
_arr instanceof Array //返回true
student instanceof Array //返回false
3.对象.proto === Array.prototype
//分别定义两个对象
var _arr = [1,2,3,4];
var student = { name: 'Tom', age: 18 }
_arr.__proto__ === Array.prototype //返回true
student.__proto__ === Array.prototype //返回false
4.Array.isArray()
//分别定义两个对象
var _arr = [1,2,3,4];
var student = { name: 'Tom', age: 18 }
Array.isArray(_arr) //返回true
Array.isArray(student ) //返回false
写的很粗糙,手打一次加深印象,欢迎补充