instanceof操做符
if(value instanceof Array){}
复制代码
其实就是判断是否是Array对象的实例,那就会有问题:javascript
Array is Array()
if(Array is Array(value)){}
复制代码
ECMAScript5新增了Array is Array()方法,这个方法最终的目的就是判断是否是数组,不会考虑在哪一个全局环境。java
Object.prototype.toString.call()
Object.prototype.toString.call(value) //若是value是数组就会返回"[object Array]"
复制代码
有时候,咱们是要判断对象或变量是什么类型,并不知道是否是数组,因此不会用以上两种。而是要用上面这一种。数组
由于在任何值上面调用Object的toString方法都会返回一个[Object NativeConstructorName]格式的字符串(与全局做用域无关,返回的值能保持一致),每一个类都有一个[class]属性,这个属性值就是构造函数名。函数