博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何判断一个对象是否是数组。
阅读量:6343 次
发布时间:2019-06-22

本文共 604 字,大约阅读时间需要 2 分钟。

  我们知道在js中除了function以外的所有对象如果用typeof来判断的话,它们都显示Object,但是有时候我们并不想这样,比如我判断一个数组就应该是个数组而不是打印Object。

var arr = [];console.log(typeof arr);  //object

解决方法1:

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

解决方法2:

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

解决方法3:

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

在这里我推荐方法3,另外如果你不知道这些方法都是什么意思,可以看一下这篇文章。

如果你有一些基础,那么我给你解释一下方法3是怎么做到的。

  首先toString是obj的属性,我通过构造函数Object的原型改变它的toString方法。如果没有call打印的是prototype,用prototype.toString()打印出来的是Object,然后用call的话会将这个构造函数的this指向这个call里面的第一个参数,通过这样就可以打印它的类型了。

转载地址:http://askla.baihongyu.com/

你可能感兴趣的文章
浅析Python进行接口自动化
查看>>
windows及linux环境下永久修改pip镜像源的方法
查看>>
表格表单及样式重置、特性
查看>>
八月个人考核
查看>>
linux网卡绑定
查看>>
Oracle技术之缺少log_archive_config导致归档路径被禁用
查看>>
Oracle 临时表之临时表的应用问题
查看>>
Linux之进程查看与管理
查看>>
碟中谍:完成任务机房是核心
查看>>
戴尔联合微软开发私有云入门级系统
查看>>
图片轮播滚动
查看>>
关于客户端与服务端时区不同导致客户端上的时间不准问题的解决方案
查看>>
基于Windows AD的单点登录系统(二)
查看>>
第17章 重新登录
查看>>
java 表现层:jsp、freemarker、velocity
查看>>
内置函数, 递归, 二分法
查看>>
java jni和android java ndk
查看>>
Kotlin技术分享:中缀调用、解构声明
查看>>
property函数
查看>>
数论 - 组合数学 + 素数分解 --- hdu 2284 : Solve the puzzle, Save the world!
查看>>