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.
Appium入门
2.
Spring WebFlux 源码分析(2)-Netty 服务器启动服务流程 --TBD
3.
wxpython入门第六步(高级组件)
4.
CentOS7.5安装SVN和可视化管理工具iF.SVNAdmin
5.
jedis 3.0.1中JedisPoolConfig对象缺少setMaxIdle、setMaxWaitMillis等方法,问题记录
6.
一步一图一代码,一定要让你真正彻底明白红黑树
7.
2018-04-12—(重点)源码角度分析Handler运行原理
8.
Spring AOP源码详细解析
9.
Spring Cloud(1)
10.
python简单爬去油价信息发送到公众号
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
判断一个对象是否是数组,有几种办法?
2.
JS中判断对象是否是数组的方法
3.
判断是否是对象
4.
js判断一个对象是否是函数对象
5.
java判断两个对象是否是同一个对象
6.
js判断对象数组中是否存在某个对象
7.
判断数组对象中是否有某个对象有值
8.
python判断一个对象是否为空的方法
9.
javascript判断一个对象是否为数组
10.
判断对象是否为一个数组
>>更多相关文章<<