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.
「插件」Runner更新Pro版,幫助設計師遠離996
2.
錯誤 707 Could not load file or assembly ‘Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKe
3.
Jenkins 2018 報告速覽,Kubernetes使用率躍升235%!
4.
TVI-Android技術篇之註解Annotation
5.
android studio啓動項目
6.
Android的ADIL
7.
Android卡頓的檢測及優化方法彙總(線下+線上)
8.
登錄註冊的業務邏輯流程梳理
9.
NDK(1)創建自己的C/C++文件
10.
小菜的系統框架界面設計-你的評估是我的決策
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
判斷一個對象是否是數組,有幾種辦法?
2.
JS中判斷對象是否是數組的方法
3.
判斷是否是對象
4.
js判斷一個對象是否是函數對象
5.
java判斷兩個對象是否是同一個對象
6.
js判斷對象數組中是否存在某個對象
7.
判斷數組對象中是否有某個對象有值
8.
python判斷一個對象是否爲空的方法
9.
javascript判斷一個對象是否爲數組
10.
判斷對象是否爲一個數組
>>更多相關文章<<