JavaShuo
栏目
标签
判断一个对象是否是数组的方法
时间 2019-11-19
标签
判断
一个
对象
是否
数组
方法
繁體版
原文
原文链接
(
1)
typeof 没法判断 只能判断原始类型的值和函数
(
2)isPrototypeOf 判断父及对象 可检查整个原型链
//可能继承自数组
console.log(
Array.prototype.isPrototypeOf([])?
"是数组":
"不是数组");
console.log(
Array.prototype.isPrototypeOf({})?
"是数组":
"不是数组");
console.log(
Array.prototype.isPrototypeOf(
function(
){})?
"是数组":
"不是数组");
(
3)
constructor 检查指定对象的构造函数 可检查整个原型链 //可能继承自数组
var father={};
var son={};
father.__proto__=
Array.prototype;
son.__proto__=father;
console.log(son.contructor==
Array?
"是数组":
"不是数组")
console.log({}.contructor==
Array?
"是数组":
"不是数组");
console.log(
function(
){}.contructor==
Array?
"是数组":
"不是数组");
(
4)
instanceof 检查一个对象是不是制定构造函数的实例 可检查整个原型链
//可能继承自数组
var father={};
var son={};
father.__proto__=
Array.prototype;
son.__proto__=father;
console.log(son
instanceof
Array?
"是数组":
"不是数组");
console.log({}
instanceof
Array?
"是数组":
"不是数组");
console.log(
function(
){}
instanceof
Array?
"是数组":
"不是数组");
(
5)强行用要检查的对象,调用原始的toString方法 不检查整个原型链
//[object class]: class-Array Date Object
//只能检查最初就是数组建立的对象。
console.log(
Object.prototype.toString.call([])==
"[object Array]"?
"是数组":
"不是数组");
console.log(
Object.prototype.toString.call({}));
console.log(
Object.prototype.toString.call(
function(
){}));
console.log(
Object.prototype.toString.call(
/\d/));
var father={};
var son={};
father.__proto__=
Array.prototype;
son.__proto__=father;
console.log(
Object.prototype.toString.call(son)==
"[object Array]"?
"是数组":
"不是数组");
//不是
//结论: 对象一旦建立,class属性就没法修改
//修改继承关系,也没法修改class属性
(
6)
Array.isArray(obj) 不检查整个原型链
console.log(
Array.isArray([]));
console.log(
Array.isArray({}));
//若是浏览器不支持isArray
if(
Array.prototype.isArray===
undefined){
//添加isArray方法
Array.prototype.isArray=
function(
arg){
//强行调用原始toString方法,和"[object Array]"比较
return
Object.prototype.toString.call(arg) ==
"[object Array]"?
"是数组":
"不是数组";
}
}
相关文章
1.
判断一个对象是否是数组,有几种办法?
2.
JS中判断对象是否是数组的方法
3.
判断是否是对象
4.
js判断一个对象是否是函数对象
5.
java判断两个对象是否是同一个对象
6.
js判断对象数组中是否存在某个对象
7.
判断数组对象中是否有某个对象有值
8.
python判断一个对象是否为空的方法
9.
javascript判断一个对象是否为数组
10.
判断对象是否为一个数组
更多相关文章...
•
如何判断MySQL是否安装成功
-
MySQL教程
•
C# 判断
-
C#教程
•
互联网组织的未来:剖析GitHub员工的任性之源
•
Kotlin学习(一)基本语法
相关标签/搜索
是否
是的
这是一个坑
是是非非
是不是
判断
判断一我的是否受过教育的标准
有的是
真是的
一直是
Hibernate教程
PHP教程
MySQL教程
算法
数据传输
数据库
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
说说Python中的垃圾回收机制?
2.
蚂蚁金服面试分享,阿里的offer真的不难,3位朋友全部offer
3.
Spring Boot (三十一)——自定义欢迎页及favicon
4.
Spring Boot核心架构
5.
IDEA创建maven web工程
6.
在IDEA中利用maven创建java项目和web项目
7.
myeclipse新导入项目基本配置
8.
zkdash的安装和配置
9.
什么情况下会导致Python内存溢出?要如何处理?
10.
CentoOS7下vim输入中文
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
判断一个对象是否是数组,有几种办法?
2.
JS中判断对象是否是数组的方法
3.
判断是否是对象
4.
js判断一个对象是否是函数对象
5.
java判断两个对象是否是同一个对象
6.
js判断对象数组中是否存在某个对象
7.
判断数组对象中是否有某个对象有值
8.
python判断一个对象是否为空的方法
9.
javascript判断一个对象是否为数组
10.
判断对象是否为一个数组
>>更多相关文章<<