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.
判斷對象是否爲一個數組
>>更多相關文章<<