typeof
var arr=[];
var json={};
typeof(arr) or typeof(json) 无论怎么样返回值都是ObejectObject instanceof Array
ES3 针对这个问题做出了处理的方式
var arr = [];
if(arr instanceof Array){
console.log("这是一个数组 ")
}
instancesof操作符的问题在于,他假定只有一个全局环境,如果存在包含多个框架的话,那实际就存在两个不同以上的执行环境了,也就是说存在了两个不同的版本的Array构造函数,如果一个页面从一个页面传入数组,那么不同页面就会存在不同构造函数
ES5针对这个问题做出了处理
if(Array.isArray(arr)){
console.log('这是一个数组')
}
兼容方面有些问题、目前兼容的有 IE9 、fireFpx、Safari5+、Oprea 10.5+、Chrome