js 判断变量是否为数组

方法一:instanceof 判断

var arr = [1, 2, 3];
console.log(arr instanceof Array);  //true

方法二:原型链方法

var arr = [1, 2, 3];

//这两句代码是一样的
console.log(arr.__proto__.constructor === Array);  //true
console.log(arr.constructor === Array);  //true

但是,这个有兼容问题,在IE早期版本里,__proto__是没有定义的 ~~~

方法三:通用的方法

var arr = [1, 2, 3];

function isArray(o) {
    return Object.prototype.toString.call(o) === '[object Array]';
}

console.log( isArray(arr) );  //true

☞ 使用 Object.prototype.toString.call() 判断数据类型

Object.prototype.toString.call([1,2])
"[object Array]"

Object.prototype.toString.call({a:18})
"[object Object]"

Object.prototype.toString.call(4)
"[object Number]"

Object.prototype.toString.call('s')
"[object String]"

Object.prototype.toString.call(true)
"[object Boolean]"

Object.prototype.toString.call(null)
"[object Null]"

Object.prototype.toString.call(undefined)
"[object Undefined]"

Object.prototype.toString.call(function(){})
"[object Function]"

Object.prototype.toString.call(/6/)
"[object RegExp]"

Object.prototype.toString.call(new Date())
"[object Date]"

Object.prototype.toString.call(new Map())
"[object Map]"

Object.prototype.toString.call(new Set())
"[object Set]"

Object.prototype.toString.call(Math)
"[object Math]"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容