如何判断一个变量是数组Array类型

1. instanceof操作符

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

2. 对象的constructor属性

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

3. Array.isArray()(ie9以上支持)

Array.isArray([1, 2, 3]);  // true

4. Object.prototype.toString

这个方法稍微绕了点弯,我们先看以下一下例子就明白了。

1
2
3
4
5
var num = 1
var str = 'abc'
console.log(Object.prototype.toString.()) //[object Object]
console.log(Object.prototype.toString.call(str))//[object String]
console.log(Object.prototype.toString.call(num))//[object Number]

call改变toString的this引用为待检测的对象,返回此对象的字符串表示,然后对比此字符串是否是’[object Array]’,以判断其是否是Array的实例。

1
2
var arr= [1,1]
console.log(Object.prototype.toString.call(arr))
------------- 本文结束 感谢您的阅读-------------

本文标题:如何判断一个变量是数组Array类型

文章作者:一只白~

发布时间:2019年02月16日 - 22:02

最后更新:2019年02月16日 - 22:02

原始链接:http://yoursite.com/2019/02/16/isArray/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。