java判断是否是数组_java判断对象是否是数组
1、从构造函数入手,obj instanceof Array
typeof 和 instanceof 都可以用来判断变量,typeof方法返回一个字符串,来表示数据的类型; 但是typeof来判断数据类型其实并不准确。比如数组、正则、日期、对象的typeof返回值都是object,这就会造成一些误差。
而instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性,返回一个布尔值。
2、从原型入手,Array.prototype.isPrototypeOf(obj);
利用isPrototypeOf()方法,判定Array是不是在obj的原型链中,如果是,则返回true,否则false。
3、Array.isArray()方法
其实js已经提供了判断是不是数组类型的方法,如下:
在MDN中就比较了isArray和instanceof的区别,当Array.isArray()不可用的使用,MDN做了如下的补丁,说明还是比较推荐使用前面讲的第三种方法 Object.prototype.toString.call(obj)。
4、根据对象的class属性(类属性),跨原型链调用toString()方法。
解释一下,在js中一个对象一旦被创建,在内部会携带创建对象的类型名,一旦创建就不能被修改了。那么怎么获取这个对象的类型名呢?
js中提供了,调用对象原型中的toString方法, Object.prototype.toString.call(obj);因为很多对象继承的toString()方法被重写了,为了能够调用正确的toString()版本,也就是最原始的版本。可以使用Function.call()的方法,其中call可以这么理解,相当于obj去借用这个 Object.prototype.toString();
那么有了这个方法,获取对象名可以这样获取:
或者
java判断是否是数组_java判断对象是否是数组相关推荐
- java判断是否是数组_Java判断对象类型是否为数组
判断对象是否为数组: public static void main(String[] args) { String[] a = ["1","2"]; if(a ...
- java面向对象数组_Java面向对象的构造器与数组对象
Java开发离不开面相对象,那么面向对象如何来的?什么又是数组对象?今天小编就来与大家共同学习一下Java的面向对象的构造器与数组对象. 构造器:用于创建对象时执行初始化.当创建一个对象时eg:new ...
- java对象数组_Java中对象数组的使用方法详解
本文实例讲述了Java中对象数组的使用方法.分享给大家供大家参考,具体如下: 一 点睛 对象可以用数组来存放,通过下面两个步骤来实现. 1 声明以类为数据类型的数组变量,并用new分配内存空间给数组. ...
- java中的对象数组_Java中对象数组的使用方法详解
本文实例讲述了java中对象数组的使用方法.分享给大家供大家参考,具体如下: 一 点睛 对象可以用数组来存放,通过下面两个步骤来实现. 1 声明以类为数据类型的数组变量,并用new分配内存空间给数组. ...
- java判断时间是不是星期五_Java判断当前日期是星期几
参考链接地址:http://blog.csdn.net/a9529lty/article/details/3206942 /** * 判断当前日期是星期几 * @param pTime 修要判断的时间 ...
- java数组可以包含对象吗_数组可以包含对象类型的元素吗_对象数组
对象数组就是数组里的每个元素都是类的对象,赋值时先定义对象,然后将对象直接赋给数组就行了. 怎样声明包含 5 个元素的对象数组,每个元素都是 Employee 类型的对象 浏览次数:4875 bill ...
- java不等长二维数组_Java中关于二维数组的理解与使用
今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...
- java int byte数组_Java 中int与byte数组转换详解
1.与运算符的理解(&): 参加运算的两个数据,按二进位进行"与"运算.如果两个相应的二进位都为1,则该位的结果值为1,否则为0.即 0&0=0:0&1=0 ...
- java 申请不定长度数组_java中申请不定长度数组ArrayList的方法
如下所示: import java.util.ArrayList; //java中申请不定长度数组 public class Test01 { public static void main(Stri ...
- java new数组_Java如何使用new创建数组
java语言使用new操作符来创建数组,语法如下: arrayRefVar = new dataType[arraySize]; 上面的语法语句做了两件事: 一.使用dataType[arraySiz ...
最新文章
- sublime怎么编译java_文本编辑利器:Sublime Text3 编译运行Java程序
- 【研究】大脑如何在“知道”与“无知”之间做出决定
- Linux 磁盘坏道检测和修复
- 成功解决label_error >= 0 label_error < static_cast<int>(nclass) MultiClassEvaluation: label must be i
- system 后门 php,php后门的编写
- 2020-06-18 CVPR2020 VL论文讨论(1) 笔记
- 一个方案提升Flutter内存利用率(干货)
- 文献学习(part40)--Efficient multi-modal geometric mean metric learning
- 演示:使用Sniffer统计与分析流量
- java 8是指什么_java中8个基本数据类型到底是指什么?是什么意思,有什么作用?我需要权威的回答,...
- asp.net如何取得纯客户端控件的值
- 深度学习之dropout
- LuaForUnity3:Lua的分支结构、循环结构与数组
- zmap扫描mysql_zmap/masscan 快速扫描网络
- C++ primer 第十一章 关联容器
- Java 快速排序,递归排序算法
- 腾讯云运维工程师认证TCA原题(2)
- 最常用计算机文件后缀名,文件扩展名/后缀名是什么 常用的文件扩展名大全
- ctfshow 萌xin赛misc
- 多篇用DL做Semantic Segmentation的文章总结
热门文章
- 【Fluent】雷诺方程:推导与求解(附MATLAB代码)
- 卡特兰数 (hdu3723 Delta Wave)
- 四大Hybrid App移动开发平台对比
- [MEGA DEAL] HyperCam 5:家庭版(50%)
- 俞永福:UC乐园2年内要给合作伙伴分成1亿元
- 在angular中,我有一个路由'/sdfsd/sss/ss',实现在一函数,判断路由配置对象中是否存在该路由...
- 在gitlab上使用动态gif作为自己的头像(转)
- 备忘录解决多边形游戏
- 西门子V90伺服DI/DO口的接线及参数定义
- Windows作为NTP同步时间的服务器时的设置