最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript判斷對象是否為數(shù)組

 更新時間:2015年12月22日 11:24:38   投稿:lijiao  
這篇文章主要介紹了JavaScript判斷對象是否為數(shù)組的三種方法,感興趣的小伙伴們可以參考一下

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

1. typeof

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

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

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

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

2. Instanceof

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

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

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

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

function isArray(obj) {
  return typeof obj == 'object' && obj.constructor == Array
}
// 測試demo
console.log(isArray([])); // true
var a = {"a":1};
console.log(isArray(a)); // false

var b = [1,2,3];
console.log(isArray(b)); // true
console.log(isArray(/\d+/g));// false

如上可以看到,通過調(diào)用isArray 方法也可以判斷是否為數(shù)組的列子。
我們現(xiàn)在可以看到,對于第二點和第三點分別使用instanceof方法和constructor屬性貌似都可以來判斷是否為數(shù)組了,但是也有列外情況,比如在跨框架iframe的時候使用頁面中的數(shù)組時,會失敗,因為在不同的框架iframe中,創(chuàng)建的數(shù)組是不會相互共享其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下是不支持的,標(biāo)準(zhǔn)瀏覽器firefox,chrome下有

console.log(arr); // 打印出 ["1", "2", "3", "4", "5"]
console.log(arr instanceof Array); // false 
console.log(arr.constructor === Array); // false

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

function isArray(obj) {
  return Object.prototype.toString.call(obj) == '[object Array]';
}
// 代碼調(diào)用
console.log(isArray([])); // true
console.log(isArray([1,2,3])); // true

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");

console.log(arr); // ["1","2","3","4","5"]
console.log(isArray(arr)); // true

以上就是本文的全部內(nèi)容,幫助大家學(xué)習(xí)JavaScript判斷對象是否為數(shù)組的方法,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • JS技巧Canvas性能優(yōu)化臟矩形渲染實例詳解

    JS技巧Canvas性能優(yōu)化臟矩形渲染實例詳解

    這篇文章主要為大家介紹了JS技巧Canvas?性能優(yōu)化臟矩形渲染實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 關(guān)于RequireJS的簡單介紹即使用方法

    關(guān)于RequireJS的簡單介紹即使用方法

    下面小編就為大家?guī)硪黄P(guān)于RequireJS的簡單介紹即使用方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • js實現(xiàn)點贊效果

    js實現(xiàn)點贊效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)點贊效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • js函數(shù)排序的實例代碼

    js函數(shù)排序的實例代碼

    這篇文章介紹了js函數(shù)排序的代碼,有需要的朋友可以參考一下
    2013-07-07
  • javascript中的糖衣語法Promise對象詳解

    javascript中的糖衣語法Promise對象詳解

    這篇文章主要介紹了javascript中的糖衣語法Promise對象詳解,Promise 對象代表了未來將要發(fā)生的事件,用來傳遞異步操作的消息,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • require.js的用法詳解

    require.js的用法詳解

    本文給大家介紹require.js的用法,require.js的誕生是為了解決兩大問題,第一實現(xiàn)js文件的異步加載,避免網(wǎng)頁失去響應(yīng),第二管理模塊之間的依賴性,便于代碼的編寫和維護,對require.js用法感興趣的朋友可以參考下本篇文章
    2015-10-10
  • js中int和string數(shù)據(jù)類型互相轉(zhuǎn)化實例

    js中int和string數(shù)據(jù)類型互相轉(zhuǎn)化實例

    在本篇文章里小編給大家分享了關(guān)于js中int和string數(shù)據(jù)類型互相轉(zhuǎn)化實例和代碼,需要的朋友們學(xué)習(xí)下。
    2019-01-01
  • 每天一篇javascript學(xué)習(xí)小結(jié)(Array數(shù)組)

    每天一篇javascript學(xué)習(xí)小結(jié)(Array數(shù)組)

    這篇文章主要介紹了javascript中的Array數(shù)組知識點,對數(shù)組的基本使用方法,以及各種方法進行整理,感興趣的小伙伴們可以參考一下
    2015-11-11
  • 在圖片上顯示左右箭頭類似翻頁的代碼

    在圖片上顯示左右箭頭類似翻頁的代碼

    使用JS實現(xiàn)在圖片上顯示左右箭頭的翻頁代碼.實例使用了javascript的onmousemove 事件,onmousemove 事件會在鼠標(biāo)指針移動時發(fā)生,感興趣的你可以參考下本文或許對你有所幫助
    2013-03-03
  • 一段非常簡單的js判斷瀏覽器的內(nèi)核

    一段非常簡單的js判斷瀏覽器的內(nèi)核

    先說明,此處的方法是說超級簡單的方法,不是指代碼超級少,而是用非常簡單的知識點,只要懂得怎么寫JavaScript的行內(nèi)樣式就可以判斷。
    2014-08-08

最新評論

繁昌县| 故城县| 那曲县| 葫芦岛市| 盐津县| 喀喇| 邢台县| 隆林| 当阳市| 余干县| 莆田市| 固原市| 天水市| 谷城县| 屯门区| 汤阴县| 界首市| 喀喇沁旗| 罗源县| 陆川县| 福海县| 浦江县| 花垣县| 永丰县| 崇仁县| 奎屯市| 思茅市| 福贡县| 赫章县| 牟定县| 河北区| 东光县| 香港| 乌恰县| 新绛县| 山西省| 永济市| 临泽县| 祁阳县| 郴州市| 瓦房店市|