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.
Duang!超快Wi-Fi來襲
2.
機器學習-補充03 神經網絡之**函數(Activation Function)
3.
git上開源maven項目部署 多module maven項目(多module maven+redis+tomcat+mysql)後臺部署流程學習記錄
4.
ecliple-tomcat部署maven項目方式之一
5.
eclipse新導入的項目經常可以看到「XX cannot be resolved to a type」的報錯信息
6.
Spark RDD的依賴於DAG的工作原理
7.
VMware安裝CentOS-8教程詳解
8.
YDOOK:Java 項目 Spring 項目導入基本四大 jar 包 導入依賴,怎樣在 IDEA 的項目結構中導入 jar 包 導入依賴
9.
簡單方法使得putty(windows10上)可以免密登錄樹莓派
10.
idea怎麼用本地maven
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
判斷一個對象是否是數組,有幾種辦法?
2.
JS中判斷對象是否是數組的方法
3.
判斷是否是對象
4.
js判斷一個對象是否是函數對象
5.
java判斷兩個對象是否是同一個對象
6.
js判斷對象數組中是否存在某個對象
7.
判斷數組對象中是否有某個對象有值
8.
python判斷一個對象是否爲空的方法
9.
javascript判斷一個對象是否爲數組
10.
判斷對象是否爲一個數組
>>更多相關文章<<