真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在JavaScript中區(qū)分Object與Aarry

如何在JavaScript中區(qū)分Object與Aarry?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供類烏齊企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都做網(wǎng)站、H5場景定制、小程序制作等業(yè)務(wù)。10年已為類烏齊眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

一、經(jīng)常遇見的問題:

JS中判斷一個對象的類型時,通常使用typeof,這時候問題就來了,因為typeof()辨別數(shù)組的時候返回的是object,所以JS中判斷一個對象是不是數(shù)組需要一些特殊的處理方式

二、開門見山

開發(fā)中要判斷一個對象是不是數(shù)組,推薦使用下面這個函數(shù):

function isArray(obj){
  if(Array.isArray){
    return Array.isArray(obj);
  }else{
   return Object.prototype.toString.call(obj)==="[object Array]";
  }
}

上面這個函數(shù)是方便急于解決問題的人,下面我將具體述說六種方法,因為可能面試的時候考官需要一個知識全面的你;

三、六種方案詳解:

(1)方法一:利用toString方法

通過調(diào)用toString( )方法試著將該變量轉(zhuǎn)化為代表其類型的string。該方法對于真正的array可行;參數(shù)對象轉(zhuǎn)化為string時

返回[object Arguments]會轉(zhuǎn)化失??;此外, 對于含有數(shù)字長度屬性的object類也會轉(zhuǎn)化失敗。

方法如下:



 
 Array的判斷方法
 
 
 
 
 
 

結(jié)果如圖:

如何在JavaScript中區(qū)分Object與Aarry

注意:推薦使用“===”全等于而不使用“==”等等于,因為效率更高!

(2)方法二:通過isArray:

使用Javascript 1.8.5(ECMAScript 5),變量名字.isArray( )可以實現(xiàn)這個目的,前提是有支持這一函數(shù),其實isArray就是

方法一的封裝使用。

使用方法十分簡單:

Array.isArray(obj); //obj是待檢測的對象

返回true或false,如果為true則為數(shù)組

(3)方法三:通過instanceof運算符來判斷,

注意:instanceof運算符左邊是子對象(待測對象),右邊是父構(gòu)造函數(shù)(這里是Array),

即:子對象 instanceof 父構(gòu)造函數(shù)

instance: 實例:凡是用new 構(gòu)造函數(shù)()創(chuàng)建出的對象,都稱為是構(gòu)造函數(shù)的實例

扯半天都迷糊了,還是直接看代碼好:



 
 
 
 
 
 
 Document
 
 
 
 
 

運行結(jié)果如下:

如何在JavaScript中區(qū)分Object與Aarry

(4)使用isPrototypeOf()函數(shù)

原理:檢測一個對象是否是Array的原型(或處于原型鏈中,不但可檢測直接父對象,還可檢測整個原型鏈上的所有父對象

使用方法: parent.isPrototypeOf(child)來檢測parent是否為child的原型;

需注意的是isPrototypeOf()函數(shù)實現(xiàn)的功能和instancof運算符非常類似;

具體代碼:

Array.prototype.isPrototypeOf(arr) //true表示是數(shù)組,false不是數(shù)組

(5)利用構(gòu)造函數(shù)constructor

具體代碼:



 
 
 
 
 
 
 Document
 
 
 
	
 

結(jié)果如圖

如何在JavaScript中區(qū)分Object與Aarry

(6)使用typeof(對象)+類型名結(jié)合判斷:

代碼如下:



 
 
 
 
 
 
 Document
 
 
 
 
 

結(jié)果如下:

這種方法其實有局限性,有的同學(xué)可能一下就破解了,那就是要是

要是對象中不巧定義了這屬性怎么辦

var obj = {'concat':'Teast me?'};

如何在JavaScript中區(qū)分Object與Aarry

看完上述內(nèi)容,你們掌握如何在JavaScript中區(qū)分Object與Aarry的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


網(wǎng)頁名稱:如何在JavaScript中區(qū)分Object與Aarry
網(wǎng)站網(wǎng)址:http://weahome.cn/article/jhodpi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部