欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript判斷變量是對象還是數(shù)組的方法

 更新時間:2014年08月28日 09:04:22   投稿:junjie  
這篇文章主要介紹了JavaScript判斷變量是對象還是數(shù)組的方法,本文分別使用instanceof和typeof實現(xiàn),需要的朋友可以參考下

typeof都返回object

在JavaScript中所有數(shù)據(jù)類型嚴(yán)格意義上都是對象,但實際使用中我們還是有類型之分,如果要判斷一個變量是數(shù)組還是對象使用typeof搞不定,因為它全都返回object

復(fù)制代碼 代碼如下:

var o = { 'name':'lee' };
var a = ['reg','blue'];
 
document.write( ' o typeof is ' + typeof o);
document.write( ' <br />');
document.write( ' a typeof is ' + typeof a);

執(zhí)行:
復(fù)制代碼 代碼如下:

o typeof is object
a typeof is object

因此,我們只能放棄這種方法,要判斷是數(shù)組or對象有兩種方法

第一,使用typeof加length屬性

數(shù)組有l(wèi)ength屬性,object沒有,而typeof數(shù)組與對象都返回object,所以我們可以這么判斷

復(fù)制代碼 代碼如下:

var o = { 'name':'lee' };
var a = ['reg','blue'];
 
var getDataType = function(o){
    if(typeof o == 'object'){
        if( typeof o.length == 'number' ){
            return 'Array';
        }else{
            return 'Object';   
        }
    }else{
        return 'param is no object type';
    }
};
 
alert( getDataType(o) );    // Object
alert( getDataType(a) );    // Array
alert( getDataType(1) );    // param is no object type
alert( getDataType(true) ); // param is no object type
alert( getDataType('a') );  // param is no object type

第二,使用instanceof

使用instanceof可以判斷一個變量是不是數(shù)組,如:

復(fù)制代碼 代碼如下:

var o = { 'name':'lee' };
var a = ['reg','blue'];
 
alert( a instanceof Array );  // true
alert( o instanceof Array );  // false

也可以判斷是不是屬于object
復(fù)制代碼 代碼如下:

var o = { 'name':'lee' };
var a = ['reg','blue'];
 
alert( a instanceof Object );  // true
alert( o instanceof Object );  // true

但數(shù)組也是屬于object,所以以上兩個都是true,因此我們要利用instanceof判斷數(shù)據(jù)類型是對象還是數(shù)組時應(yīng)該優(yōu)先判斷array,最后判斷object
復(fù)制代碼 代碼如下:

var o = { 'name':'lee' };
var a = ['reg','blue'];
 
var getDataType = function(o){
    if(o instanceof Array){
        return 'Array'
    }else if( o instanceof Object ){
        return 'Object';
    }else{
        return 'param is no object type';
    }
};
 
alert( getDataType(o) );    // Object
alert( getDataType(a) );    // Array
alert( getDataType(1) );    // param is no object type
alert( getDataType(true) ); // param is no object type
alert( getDataType('a') );  // param is no object type

如果你不優(yōu)先判斷Array,比如:
復(fù)制代碼 代碼如下:

var o = { 'name':'lee' };
var a = ['reg','blue'];
 
var getDataType = function(o){
    if(o instanceof Object){
        return 'Object'
    }else if( o instanceof Array ){
        return 'Array';
    }else{
        return 'param is no object type';
    }
};
 
alert( getDataType(o) );    // Object
alert( getDataType(a) );    // Object
alert( getDataType(1) );    // param is no object type
alert( getDataType(true) ); // param is no object type
alert( getDataType('a') );  // param is no object type

那么數(shù)組也會被判斷為object。

相關(guān)文章

  • js模糊查詢實例分享

    js模糊查詢實例分享

    本文主要分享了js模糊查詢的實現(xiàn)代碼,沒有接觸到后臺數(shù)據(jù)的知識,只是查詢當(dāng)前表格中每一行所包含的關(guān)鍵字。具有一定的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • JavaScript編碼小技巧分享

    JavaScript編碼小技巧分享

    這篇文章適合任何一位基于JavaScript開發(fā)的開發(fā)者。我寫這篇文章主要涉及JavaScript中一些簡寫的代碼,幫助大家更好理解一些JavaScript的基礎(chǔ)。希望這些代碼能從不同的角度幫助你更好的理解JavaScript。
    2020-09-09
  • childNodes.length與children.length的區(qū)別

    childNodes.length與children.length的區(qū)別

    childNodes.length與children.length的值常不一樣。
    2009-05-05
  • 新手快速入門微信小程序組件庫 iView Weapp

    新手快速入門微信小程序組件庫 iView Weapp

    這篇文章主要介紹了新手快速入門微信小程序組件庫 iView Weapp,iView Weapp 提供了與 iView 一致的 UI 和盡可能相同的接口名稱,大幅度降低了學(xué)習(xí)成本,是一套一套高質(zhì)量的微信小程序 UI 組件庫,需要的朋友可以參考下
    2019-06-06
  • JavaScript實現(xiàn)文件下載的超簡單兩種方式分享

    JavaScript實現(xiàn)文件下載的超簡單兩種方式分享

    這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)文件下載的超簡單兩種方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • 支持移動端原生js輪播圖

    支持移動端原生js輪播圖

    這篇文章主要介紹了支持移動端原生js輪播圖的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • JavaScript使用FileReader實現(xiàn)圖片上傳預(yù)覽效果

    JavaScript使用FileReader實現(xiàn)圖片上傳預(yù)覽效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript使用FileReader實現(xiàn)圖片上傳預(yù)覽效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • JS實現(xiàn)圖片元素轉(zhuǎn)BASE64編碼的簡單示例

    JS實現(xiàn)圖片元素轉(zhuǎn)BASE64編碼的簡單示例

    在Web開發(fā)中,我們經(jīng)常需要將圖片轉(zhuǎn)換為Base64格式,以便在不依賴外部資源的情況下直接在HTML中使用,在這篇文章中,我將向您展示如何使用JavaScript將圖片元素轉(zhuǎn)BASE64編碼,需要的朋友可以參考下
    2023-12-12
  • 通過js動態(tài)創(chuàng)建標(biāo)簽,并設(shè)置屬性方法

    通過js動態(tài)創(chuàng)建標(biāo)簽,并設(shè)置屬性方法

    下面小編就為大家分享一篇通過js動態(tài)創(chuàng)建標(biāo)簽,并設(shè)置屬性方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 炫酷的js手風(fēng)琴效果

    炫酷的js手風(fēng)琴效果

    既然JQ和JS都能實現(xiàn)那么炫酷的效果,我們用CSS3能不能做出手風(fēng)琴效果的書簽來呢?這篇文章主要為大家分享了炫酷的手風(fēng)琴效果實現(xiàn)方式,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評論