麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

JavaScript判斷對象是否為數組

2024-05-06 16:26:42
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JavaScript判斷對象是否為數組的三種方法,感興趣的小伙伴們可以參考一下
 

文中為大家分享了三種JavaScript判斷對象是否為數組的方法,

1. typeof

首先我們會想到的是使用typeof來檢測數據類型,但是對于Function, String, Number, Undefined等這幾種基本類型來說,使用typeof來檢測都可以檢測到,比如代碼如下:

function test(){}console.log(typeof 1); // numberconsole.log(typeof test); // function console.log(typeof "yunxi"); // stringconsole.log(typeof undefined); // undefined

但是對于數組或者正則來說,使用typeof來檢測的話,那就滿足不了,因為當我們檢測數組或者正則的話,那么返回的類型將會是一個對象object,如下代碼所示:

console.log(typeof []); // objectconsole.log(typeof //d+/g); // object

2. Instanceof

由此我們很容易會想到使用instanceof來檢測某個對象是否是數組的實例,該檢測會返回一個布爾型(boolean),如果是數組的話,返回true,否則的話返回false;我們再來看下上面的檢測是否為數組的代碼如下:

console.log([] instanceof Array); // trueconsole.log(//d+/g instanceof Array); // false

如上可以看到使用instanceof確實可以判斷是否為數組的列子;
3. constructor屬性

在javascript中,每個對象都有一個constructor屬性,它引用了初始化該對象的構造函數,比如判斷未知對象的類型,因此我們可以如下寫一個方法,代碼如下:

function isArray(obj) {  return typeof obj == 'object' && obj.constructor == Array}// 測試democonsole.log(isArray([])); // truevar a = {"a":1};console.log(isArray(a)); // falsevar b = [1,2,3];console.log(isArray(b)); // trueconsole.log(isArray(//d+/g));// false

如上可以看到,通過調用isArray 方法也可以判斷是否為數組的列子。
我們現在可以看到,對于第二點和第三點分別使用instanceof方法和constructor屬性貌似都可以來判斷是否為數組了,但是也有列外情況,比如在跨框架iframe的時候使用頁面中的數組時,會失敗,因為在不同的框架iframe中,創建的數組是不會相互共享其prototype屬性的;如下代碼測試即可得到驗證~

var iframe = document.createElement('iframe');document.body.appendChild(iframe);xArray = window.frames[window.frames.length-1].Array;    var arr = new xArray("1","2","3","4","5");//這個寫法IE下是不支持的,標準瀏覽器firefox,chrome下有console.log(arr); // 打印出 ["1", "2", "3", "4", "5"]console.log(arr instanceof Array); // false console.log(arr.constructor === Array); // false

如上的方法我們都不能來判斷一個對象是否為數組的方式; 但是我們在看ECMA262中可以看到,可以使用 Object.prototype.toString.call()方法來判斷一個對象是否為數組;如下代碼:

function isArray(obj) {  return Object.prototype.toString.call(obj) == '[object Array]';}// 代碼調用console.log(isArray([])); // trueconsole.log(isArray([1,2,3])); // truevar iframe = document.createElement('iframe');document.body.appendChild(iframe);xArray = window.frames[window.frames.length-1].Array;    var arr = new xArray("1","2","3","4","5");console.log(arr); // ["1","2","3","4","5"]console.log(isArray(arr)); // true

以上就是本文的全部內容,幫助大家學習JavaScript判斷對象是否為數組的方法,希望對大家的學習有所幫助。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 万圣街在线观看免费完整版 | 日日天日日夜日日摸 | 一区二区三区在线观看av | 色网在线视频 | 亚洲91精品 | 一色桃子av大全在线播放 | 久久91久久久久麻豆精品 | 免费国产一区二区视频 | 天天夜天天操 | 久久久久久片 | 伊人亚洲精品 | 国产88久久久国产精品免费二区 | 久久逼网| 黄色大片免费网站 | 国产寡妇xxxxxxxx性开放 | 一级国产精品一级国产精品片 | 久久艹逼 | 久草在线资源福利站 | 久久狠狠高潮亚洲精品 | 欧美成人一区二区三区 | 毛片在线播放视频 | 天天操天天碰 | 深夜小视频在线观看 | 中文字幕www.| 91重口视频 | 久久影院一区二区三区 | 91精品国产九九九久久久亚洲 | 黄色片小说 | 国产午夜免费视频 | 国产伦久视频免费观看视频 | 国产资源在线免费观看 | 中文字幕精品一二三四五六七八 | 黄色大片大毛片 | 在线成人一区二区 | 久草在线免费资源站 | 97超碰资源站 | 色人久久 | 久久色播| 斗罗破苍穹在线观看免费完整观看 | 欧美视频一二三区 | 依依成人综合 |