一,判断数组的方法

首先需要明确的是typeof在判断[],{},null时返回的都是 object,所以是无法判断数组和对象的。
1,常用的方法是:instanceof

表达式:A instanceof B
返回值:如果B函数的显示原型对象(prototype)在A对象的原型链(__proto__)上,返回true,否则false
var arr=[1,2,3]
var b={}
console.log(arr instanceof Array)  //true
console.log(b instanceof Object)   //true
console.log(arr instanceof Object)  //true  因为arr的原型链必然包含Object的原型对象,或者说所有对象都是Object的实例//于是又可以引申出另一种写法:
console.log(arr.__proto__.constructor === Array )
console.log(arr.__proto__=== Array.prototype )

所以说,它可以用来判断是不是数组,而判断不了是不是对象。
但是如果存在多个全局执行环境,就会存在多个不同版本的Array构造函数了,这种办法就会失效,使用下一种:
2,Array.isArray(arr)
不管arr是在哪个全局环境定义的,一旦是数组则返回true,否则false.

Array.isArray([]) // true
Array.isArray({}) // false

3,constructor

var arr=[]
console.log(arr.constructor==Array)  //true

4,toString

var arr=[]
console.log(Object.prototype.toString.call(arr) === '[object Array]')  //true

二,判断是否对象的方法

1、toString(推荐)

Object.prototype.toString.call(obj) === '[object Object]'
//Object原型对象上的toString方法是可以判断类型的。利用call把指针指向obj,也就是调用这个toString方法来判断obj

2、constructor

obj.constructor === Object

js基础-12-判断数组和判断对象的方法相关推荐

  1. js中判断空数组和空对象的方法

    复习的时候做一些学习的笔记总结. javascript的值的类型: 原始值:number.string.boolean.undefined.null.symbol(ES6).bigint(ES10) ...

  2. JS基础:变量、函数、对象、数组、循环、选择(判断)

    JS基础:变量.函数.对象.数组.循环.选择(判断) js的三个组成部分 ECMAScript - ES - 语法规范 DOM - 文档对象模型 - API BOM - 浏览器对象模型 - API j ...

  3. 3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景|判断数组里有没有某对象,有不添加,没有则添加到数组

    3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景 一.当数组中的数据是简单类型时: 应用js中的indexof方法:存在则返回当前项索引,不存在则返回 ...

  4. js,根据一个数组,遍历对象数组,进行多条件并列的筛选或过滤

    js,根据一个数组,遍历对象数组,进行多条件并列的筛选或过滤 1. 筛选是否 2. 筛选特定值 多条件并列:某一条数据的两个以上的属性,同时满足筛选条件 1. 筛选是否 业务场景:返回一个对象数组,在 ...

  5. php判断几维数组的方法,php判断数组是几维的方法

    php判断数组是几维的方法:首先创建一个PHP示例文件:然后定义一个foreachArray方法:接着通过"is_array"函数检测变量是否是一个数组:最后通过循环遍历的方法判断 ...

  6. JS JavaScript中去除数组中重复元素的方法

    JS JavaScript中去除数组中重复元素的方法 感觉比较好理解的3种方法,总结一下,大家共同学习 方法一: Array.prototype.method1 = function(){ var a ...

  7. JS中有没有简单的判断数组是否为空的方法

    直接判断数组的长度是否为0 利用布尔值判断 数组为object,直接用if(a)判断的话都是为true,可以用数组的长度去直观判断是否为空 将数组和布尔类型都转化为Number类型比较,空数组转化为N ...

  8. 判断数组里面的对象是否相同与不相同

    const newList=[] for(const t of this.tableData){if(newList.find(c => c.goodsFeeModeId === t.goods ...

  9. 【JS基础】Array数组的创建与操作方法

    本文参考:<JS高级程序设计>(红宝书). JS数组的独特性 JS中Array类型属于引用类型,是除了Object之外最常用的类型. JS的数组与其他语言的数组有着相当大的区别,它十分灵活 ...

  10. php if为空那么,PHP中判断数组是否为空的方法

    PHP中判断数组为空的方法有好几种,但当遇到判断多维数组时,这些方法都无法判别数组是否为空,现在下面先介绍从网上搜索到判断一维数组的方法. PHP判断数组为空之一.for循环 最简单也是最直接的方法, ...

最新文章

  1. Python基础之模块与包
  2. Linux操作系统下以不同颜色命名的文件类型
  3. java点到曲线的距离公式,使用Haversine的距离公式获取经度和纬度的距离
  4. 怎样用matlab模型建立,怎样在matlab里建立一个BP神经网络模型?
  5. hsweb提取页面查询参数_提取网页,登录情况填写规则,参数和值获取办法
  6. MVC 模式和模型 2
  7. freebsd查询php5的版本,FreeBSD下查看各软件版本命令
  8. jQuery.access的作用
  9. (6)Spring框架----Bean生命周期分析(详细)
  10. Python库下载第三方镜像(清华/豆瓣)
  11. tbschedule源码学习
  12. 洛谷:P2142 高精度减法
  13. 如何打开阿里云安全组
  14. 聚焦安稳易用,云和恩墨 MogDB 荣登“集中式数据库影响力指数”榜单
  15. NS3仿真之LTE数据分析RSRP,SINR,吞吐量
  16. # CSS 背景设置
  17. 数学中的Sin和Cos是什么意思?(转)
  18. 如何将json数据并格式化—html
  19. 一些常用软件静默安装参数(nsis,msi,InstallShield ,Inno)
  20. motion_model总结

热门文章

  1. react native webview 百度地图_react-native-baidu-map使用及注意问题
  2. excel查找空值快捷键_有了这7个Excel中常用的小技巧,再也不用担心自己要加班了!...
  3. mongoose 常用数据库操作 更新
  4. Leetcode. 回文字符串的分割和最少分割数
  5. 软件需求分析(补发)
  6. 215. Kth Largest Element in an Array
  7. linux mysql远程连接
  8. JQuery 使用笔记 2013.09.05
  9. C语言中结构体赋值问题的讨论
  10. MVC3开发常常遇到的问题及常常使用到的代码片段