判断一个对象是不是数组类型

判断一个对象是不是数组类型,可以分为判断原型对象,判断构造函数和判断内部class属性三大类,下面代码是所有方法。

// 判断一个对象是不是数组类型var a = 10,b = 'hello',c = true,d = null,e = undefined;var f = function () {};var obj1 = {},obj2 = [0, 1, 2],obj3 = new Date();console.log(typeof (a),typeof (b),typeof (c),typeof (d),typeof (e),typeof (f),typeof (obj1),typeof (obj2),typeof (obj3),)// 改变obj1的原型对象,改变后判断原型对象和判断构造函数方法不再准确obj1.__proto__ = Array.prototype;// 判断原型对象// 1. __proto__获取原型对象,再和数组的原型对象比较。实例对象的__proto__属性指向原型对象。console.log(obj1.__proto__ == Array.prototype,obj2.__proto__ == Array.prototype,obj3.__proto__ == Array.prototype)// 2.Object.getPrototypeOf()函数等效于__proto__属性。返回指定对象的的原型对象console.log(Object.getPrototypeOf(obj1) == Array.prototype,Object.getPrototypeOf(obj2) == Array.prototype,Object.getPrototypeOf(obj3) == Array.prototype)// 3.Object.prototype.isPrototypeOf() 检查一个对象是否存在于另一个对象的原型链中。console.log(Array.prototype.isPrototypeOf(obj1),Array.prototype.isPrototypeOf(obj2),Array.prototype.isPrototypeOf(obj3))// 判断构造函数// 4.用父级原型对象中的constructor属性console.log(obj1.constructor == Array,obj2.constructor == Array,obj3.constructor == Array)// 5.instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。 语法:object instanceof constructorconsole.log(obj1 instanceof Array,obj2 instanceof Array,obj3 instanceof Array)// 利用顶级父对象的toString()方法判断   最准确// 6.Object.prototype.toString.call()console.log(Object.prototype.toString.call(obj1),Object.prototype.toString.call(obj2),Object.prototype.toString.call(obj3))// 7.es5 Array.isArray()  等效方法6console.log(Array.isArray(obj1),Array.isArray(obj2),Array.isArray(obj3))

判断一个对象是不是数组类型,最全方法相关推荐

  1. JS判断变量是不是数组的5种方法

    方式一:isArray var arr=[1,2,3]; console.log(Array.isArray(arr)) 方式二:instanceof var arr=[1,2,3]; console ...

  2. 36.JVM内存分哪几个区,每个区的作用是什么、如和判断一个对象是否存活、java垃圾回收机制、垃圾收集的方法有哪些、java类加载过程、类加载机制、双亲委派、Minor GC和Major GC

    36.JVM内存分哪几个区,每个区的作用是什么? 37.如和判断一个对象是否存活?(或者GC对象的判定方法) 38.简述java垃圾回收机制? 39.java中垃圾收集的方法有哪些? 40.java类 ...

  3. 如何判断数组的四种方法

    日常中我们会用typeOf运算符去判断数据的类型,结果如下 其中对于对象和数组用typeof方法得到的结果都是object,这是因为在JavaScript中所有数据类型严格意义上都是对象,对象是对象, ...

  4. 【数组方法大合集】原生js数组array常用工具方法大合集

    var array = {/* 数组求和*/sum: arr => eval(arr.join("+")),/* 判断一个数组(支持一个字符串)里面的是否有任何一个元素被包含 ...

  5. html中显示变量的数组,javascript如何判断变量是不是数组?

    javascript如何判断变量是不是数组?下面本篇文章就来给大家介绍一下使用javascript判断变量是不是数组的几种方法,希望对大家有所帮助. 方案一:使用instanceof运算符 语法:变量 ...

  6. js中判断两个数组是否相等

    js中判断两个数组是否相等的方法 1. 将两个数组转成字符串比较,但是发现他们只是顺序不相等也被当做不相等 [1,2,3].toString()== [3,2,1].toString() ----fa ...

  7. js的数组和对象的多种复制和清空, 以及区分JS数组和对象的方法

    js的数组和对象的多种"复制"和"清空", 以及区分JS数组和对象的方法 一.数组清空与复制方法 1.数组清空的方法 var a = [1,2,3]; a.le ...

  8. js判断数据类型如判断是否为数组是否为字符串等等

    1 判断是否为数组类型 2 判断是否为字符串类型 3 判断是否为数值类型 !isNaN(变量) 如果为true就是数字类型 4 判断是否为日期类型 5 判断是否为函数 6 判断是否为对象 一.判断是否 ...

  9. 判断数组类型的方法(Array.isArray)以及Math数字对象

    判断数组类型的方法       Array.isArray var a = [1,2,3];var r = Array.isArray(a);console.log(r); 预览效果 Math数字对象 ...

最新文章

  1. 计算机开启时提示键盘错误,电脑开机出现异常提示keyboard not found的故障原因及解决方法_电脑故障...
  2. Excessive growth of the primary database log mirror and system Performance Monitoring
  3. 构建创业公司突击小团队
  4. c语言统计数据,数据统计
  5. visual studio enter键代码自动补全
  6. mysql 查看锁_SQL-mysql锁等待与死锁
  7. numpy将bool值转换成数值
  8. 晨风机器人对接php_php封装实现钉钉机器人报警接口的示例代码
  9. 预付费客户抄表管理系统的应用
  10. 华为平板解锁工具_华为平板M6 10.8英寸首发评测 办公+影音+智能全面开花
  11. 机器视觉培训教程-如何选择合适的灯源
  12. 微信接入验证 php,php版微信公共平台开发者认证实例
  13. 码易手机站,现已轻快上线!
  14. 叶酸修饰的羧化石墨烯氧化物,Folic acid-graphene(COOH)
  15. JAVA开发---微信文章留言功能实现
  16. fastcgi pass php-fpm,nginx: fastcgi_pass的配置
  17. 图谱卷积预备知识1:拉普拉斯矩阵
  18. Pandas DataFrame入门教程(图解版)
  19. 【转】ReactOS的中文本地化
  20. 北醒TF 系列雷达 串口转网络(TCP)通讯参考方案

热门文章

  1. 2020-06 补丁日: 微软多个产品高危漏洞安全风险通告
  2. 【负荷预测】基于蚂蚁优化算法的BP神经网络在负荷预测中的应用研究(Matlab完整代码实现)
  3. 主板开启网络唤醒_华硕主板网络唤醒 WOL 的设置与实现
  4. 气象类软件如何测试方法,“能见度”如何测准?这个神器,90%的气象人不知道!...
  5. webpack配置详解
  6. UNO卡牌游戏 3.0 成品
  7. 你的贴身伙伴新墨斯智能运动鞋
  8. Python 读取大文件(GB) yield 的使用
  9. php radiobutton,VB.Net单选按钮(RadioButton)
  10. 学习 HTML,其实真的不难