判断数组的6种方法
说明一下:数组是属于object类型的,也就是引用类型,所以不能使用 typeof 来判断其具体类型。下面这些方法是判断数组的几种方法
1.instanceof 运算符
let arr = [1,2,3]; console.log(arr instanceof Array); //true
2.constructor 构造函数
let arr = [1,2,3]; console.log(arr.constructor == Array); //true
3.isArray (ES5新增数组方法,判断数组是不是数组)
let arr = [1,2,3];
console.log(Array.isArray(arr)); //true
4.Object.prototype.toString.call() (把对象转化成字符串和一个已知的对象进行对比)
let arr = [1,2,3]; console.log(Object.prototype.toString.call(arr) == '[object Array]'); //true
5.Array原型链上的isPrototypeOf (Array.prototype表示Array的构造函数的原型;isPrototypeOf()方法可以判断当前对象是否是另一个对象的原型,或者说一个对象是否被包含在另一个对象的原型链中)
let arr = [1,2,3]; console.log(Array.prototype.isPrototypeOf(arr)); //true
6.Object.getPrototypeOf() (Object.getPrototypeOf()方法返回指定对象(arr)的原型,然后和Array的原型对比)
let arr = [1,2,3]; console.log(Object.getPrototypeOf(arr) == Array.prototype); //true
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通