如何判断一个变量是否是数组
# 方法一
使用 instanceof
运算符, 该运算符左边是我们想要判断的变量, 右边则是我们想要判断的对象的类
let arr = [1, 2, 3]
console.log(arr instanceof Array)
1
2
2
# 方法二
利用 构造函数
来判断他的原型是否为Array, 用法: 变量.constructor === 变量类型
let arr = [1, 2, 3]
console.log(arr.constructor === Array)
1
2
2
# 方法三
第三种方法利用的一个专门的方法 isArray
, 用法:Array.isArray
,返回true,则说明该变量是数组类型;反之,说明该变量不是数组类型
let arr = [1, 2, 3]
console.log(Array.isArray(arr))
1
2
2
# 方法四
第四种方法是调用 Object.prototype.toString.call
,返回true,则说明该变量是数组类型;反之,说明该变量不是数组类型
let arr = [1, 2, 3]
console.log(Object.prototype.toString.call(arr) === '[object Array]')
1
2
2
# 方法五
第五种方式是通过对象的原型方式来判断,直接来看例子
let arr = [1, 2, 3]
console.log(arr.__proto__ === Array.prototype)
1
2
2
# 方法六
第六种方式是通过 Object.getPrototypeOf
来判断是否为数组类型,例如
let arr = [1, 2, 3]
console.log(Object.getPrototypeOf(arr) === Array.prototype)
1
2
2
# 方法七
第七种方式是通过 isPrototypeOf
方法来判断是否为数组类型,
例如let arr = [1, 2, 3]
console.log(Array.prototype.isPrototypeOf(arr))
1
2
2