在JS中,数组是是Object引用类型,所以说typeof运算符不可以用来判断数组
typeof运算符会把对象、数组或null返回object。却不能细分出是什么类型的数组...
typeof运算符只能判断原始数据类型哦
咳咳..废话少说,正文来啦!
1. instanceof操作符
使用方法:arr instanceof Array
instanceof是用来判断某个实例是否属于某个对象的原型链上
let arr = [];
console.log(arr instanceof Array); // true
let arr = [];
console.log(Array.isArray(arr)); // true
解决了耶!...刺激嘛
3.Array.prototype.isPrototypeOf方法
使用方法:Array.prototype.isPrototypeOf(arr)
Array.prototype 属性表示 Array 构造函数的原型
isPrototypeOf() 用于测试一个对象是否存在于另一个对象的原型链上。
let arr = [];
console.log(Array.prototype.isPrototypeOf(arr)); // true
也不赖哦...
铛铛铛~拉开你和别人差距的方法来了!(温馨提示:可以拿来炫技,你懂吧)
4.对象构造函数的 constructor判断
使用方法:arr.constructor === Array
因为Object的每个实例都有构造函数 constructor,用于保存着用于创建当前对象的函数
let arr = [];
console.log(arr.constructor === Array); // true
5.Object.prototype.toString
使用方法:Object.prototype.toString.call(arr) === '[object Array]')
虽然Array也继承自Object,但js在Array.prototype上重写了toString,而我们通过toString.call(arr)实际上是通过原型链调用了。
let arr = [];
console.log(Object.prototype.toString.call(arr) === '[object Array]'); // true
头一次发表文章,如有不足多多指教!因为听说有个博客在面试很加分,就想来试试看
也是为了复习时可以回头看看~ 最后就祝读者们学好吃好玩好啥都好哈