首先“拔草” typeof 操作符,因为用typeof去检测数组类型,将返回Object,无法判断。
let arr = [1, 2, 3, 4]
console.log(typeof arr);
以下有几个方法可以判断:
instanceof操作符
let arr = [1, 2, 3, 4]
console.log(arr instanceof Array);
对象的constructor属性
let arr = [1, 2, 3, 4]
console.log(arr.constructor === Array);
我们可以打印arr对象看看内置属性
let arr = [1, 2, 3, 4]
console.log(arr);
let obj = {}
console.log(obj);
Object.prototype.toString.call()
let arr = [1, 2, 3, 4]
console.log(Object.prototype.toString.call(arr));
不仅能判断数组,这个方法可以判断各种我们常见的类型
console.log(Object.prototype.toString.call(arr));
console.log(Object.prototype.toString.call({}));
console.log(Object.prototype.toString.call(1));
console.log(Object.prototype.toString.call(Function));
console.log(Object.prototype.toString.call('hello'));
console.log(Object.prototype.toString.call(true));
Array.isArray()
let arr = [1, 2, 3, 4];
console.log(Array.isArray(arr));