国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

區(qū)別對(duì)象和數(shù)組的六種方法

senntyou / 1267人閱讀

摘要:區(qū)別對(duì)象和數(shù)組的六種方法方法一利用方法通過(guò)調(diào)用方法試著將該變量轉(zhuǎn)化為代表其類型的。該方法對(duì)于真正的可行參數(shù)對(duì)象轉(zhuǎn)化為時(shí)返回會(huì)轉(zhuǎn)化失敗此外,對(duì)于含有數(shù)字長(zhǎng)度屬性的類也會(huì)轉(zhuǎn)化失敗。

區(qū)別對(duì)象和數(shù)組的六種方法
(1)方法一:利用toString方法
通過(guò)調(diào)用toString( )方法試著將該變量轉(zhuǎn)化為代表其類型的string。該方法對(duì)于真正的array可行;參數(shù)對(duì)象轉(zhuǎn)化為string時(shí)
返回[object Arguments]會(huì)轉(zhuǎn)化失敗;此外, 對(duì)于含有數(shù)字長(zhǎng)度屬性的object類也會(huì)轉(zhuǎn)化失敗。

1. function isArrayOne(arr){  
2. return Object.prototype.toString.call(arr) === "[object Array]";  
3. }  
4. var obj = {"k1":"v1"};  
5. var arr = [1,2];  
6. console.log("對(duì)象的結(jié)果:"+isArrayOne(obj));  
7. console.log("數(shù)組的結(jié)果:"+isArrayOne(arr));  

注意:推薦使用“===”全等于而不使用“==”等等于,因?yàn)樾矢撸≡蛘?qǐng)看我的的博客《前端開(kāi)發(fā)的45個(gè)技巧》
(2)方法二:通過(guò)isArray:
使用Javascript 1.8.5(ECMAScript 5),變量名字.isArray( )可以實(shí)現(xiàn)這個(gè)目的,前提是有支持這一函數(shù),其實(shí)isArray就是
方法一的封裝使用。
使用方法十分簡(jiǎn)單:

1. Array.isArray(obj);   //obj是待檢測(cè)的對(duì)象  

返回true或false,如果為true則為數(shù)組
(3)方法三:通過(guò)instanceof運(yùn)算符來(lái)判斷,
注意:instanceof運(yùn)算符左邊是子對(duì)象(待測(cè)對(duì)象),右邊是父構(gòu)造函數(shù)(這里是Array),
即:子對(duì)象 instanceof 父構(gòu)造函數(shù)
instance: 實(shí)例:凡是用new 構(gòu)造函數(shù)()創(chuàng)建出的對(duì)象,都稱為是構(gòu)造函數(shù)的實(shí)例

1. var obj = {"k1":"v1"};  
2. var arr = [1,2];  
3. console.log("Instanceof處理對(duì)象的結(jié)果:"+(obj instanceof Array));  
4. console.log("Instanceof處理數(shù)組的結(jié)果:"+(arr instanceof Array));  


4)使用isPrototypeOf()函數(shù)
原理:檢測(cè)一個(gè)對(duì)象是否是Array的原型(或處于原型鏈中,不但可檢測(cè)直接父對(duì)象,還可檢測(cè)整個(gè)原型鏈上的所有父對(duì)象)
使用方法: parent.isPrototypeOf(child)來(lái)檢測(cè)parent是否為child的原型;
需注意的是isPrototypeOf()函數(shù)實(shí)現(xiàn)的功能和instancof運(yùn)算符非常類似;

具體代碼:

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

(5)利用構(gòu)造函數(shù)constructor
constructor 屬性返回對(duì)創(chuàng)建此對(duì)象的數(shù)組函數(shù)的引用。
具體代碼:

1. var obj = {"k":"v"};  
2. var t1 = new Array(1);  
3. var t2 = t1;  
4. console.log(obj.constructor == Array);  
5. console.log(t1.constructor == Array);  
6. console.log(t2.constructor == Array);  

(6)使用typeof(對(duì)象)+類型名結(jié)合判斷:
代碼如下:

1. function isArrayFour(arr){  
2. if(typeof(arr)==="object"){  
3. if(arr.concat){  
4. return "This is Array";  
5. }else{  
6. return "This Not Array";  
7. }  
8. }  
9. }  
10.var arr = [1];  
11.var obj = {"k":"v"};  
12.console.log(typeof(arr));  
13.console.log(typeof(obj));  
14.console.log(isArrayFour(arr));  
15.console.log(isArrayFour(obj));  


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/98061.html

相關(guān)文章

  • JS判斷數(shù)組六種方法詳解

    摘要:對(duì)象構(gòu)造函數(shù)的判斷用法的每個(gè)實(shí)例都有構(gòu)造函數(shù),用于保存著用于創(chuàng)建當(dāng)前對(duì)象的函數(shù)如上所示,的實(shí)例的跟對(duì)象是相等的那么我們就可以用此來(lái)判斷數(shù)組了原型鏈上的用法屬性表示構(gòu)造函數(shù)的原型其中有一個(gè)方法是用于測(cè)試一個(gè)對(duì)象是否存在于另一個(gè)對(duì)象的原型鏈上。 在JS中,數(shù)組是屬于Object類型的,也就是屬于引用類型(引用類型存放在堆內(nèi)存中,在棧內(nèi)存會(huì)有一個(gè)或者多個(gè)地址來(lái)指向這個(gè)堆內(nèi)存)。 所以對(duì)于引用...

    xiaoxiaozi 評(píng)論0 收藏0
  • Javascript中數(shù)組去重六種方法

    摘要:數(shù)組去重第一種方法先對(duì)數(shù)組進(jìn)行排序,排好序,然后把數(shù)組的當(dāng)前項(xiàng)和后一項(xiàng)進(jìn)行比較,相同則使用數(shù)組的相同的位置,,但是為了防止數(shù)組塌陷,每次刪除數(shù)組元素的時(shí)候要把的值減一。 數(shù)組去重 第一種方法: 先對(duì)數(shù)組進(jìn)行排序sort(),排好序,然后把數(shù)組的當(dāng)前項(xiàng)和后一項(xiàng)進(jìn)行比較,相同則使用數(shù)組的splice(相同的位置,1),但是為了防止數(shù)組塌陷,每次刪除數(shù)組元素的時(shí)候要把i的值減一。 ...

    CodeSheep 評(píng)論0 收藏0
  • 虎牙直播運(yùn)維負(fù)責(zé)人張觀石 | 解密SRE六種能力及虎牙運(yùn)維實(shí)踐

    摘要:本文是根據(jù)虎牙直播運(yùn)維負(fù)責(zé)人張觀石月日在攜手魅族百度云主辦的第十三期魅族開(kāi)放日虎牙直播平臺(tái)實(shí)踐演講中的分享內(nèi)容整理而成。英雄聯(lián)盟是全球最大的電子競(jìng)技賽事,目前正在如火如荼進(jìn)行,從今天開(kāi)始進(jìn)入了總決賽的淘汰賽階段了。 showImg(https://segmentfault.com/img/bVblQM9?w=1080&h=720); 本文是根據(jù)虎牙直播運(yùn)維負(fù)責(zé)人張觀石10月20日在ms...

    ixlei 評(píng)論0 收藏0
  • 總結(jié)異步編程六種方式

    摘要:以下為幾種異步編程方式的總結(jié),希望與君共勉。回調(diào)函數(shù)事件監(jiān)聽(tīng)發(fā)布訂閱模式異步編程傳統(tǒng)的解決方案回調(diào)函數(shù)和事件監(jiān)聽(tīng)初始示例假設(shè)有兩個(gè)函數(shù)和,是一個(gè)需要一定時(shí)間的函數(shù)。 異步編程 眾所周知 JavaScript 是單線程工作,也就是只有一個(gè)腳本執(zhí)行完成后才能執(zhí)行下一個(gè)腳本,兩個(gè)腳本不能同時(shí)執(zhí)行,如果某個(gè)腳本耗時(shí)很長(zhǎng),后面的腳本都必須排隊(duì)等著,會(huì)拖延整個(gè)程序的執(zhí)行。以下為幾種異步編程方式的總...

    coolpail 評(píng)論0 收藏0
  • 虎牙直播運(yùn)維負(fù)責(zé)人張觀石 | 解密SRE六種能力及虎牙運(yùn)維實(shí)踐

    摘要:虎牙直播運(yùn)維負(fù)責(zé)人張觀石張觀石,擁有余年網(wǎng)站開(kāi)發(fā)架構(gòu)運(yùn)維經(jīng)驗(yàn)?zāi)壳瓣P(guān)注互聯(lián)網(wǎng)服務(wù)可靠性系統(tǒng)工程運(yùn)維平臺(tái)的規(guī)劃建設(shè)網(wǎng)站高可用架構(gòu)等方面在音視頻傳輸質(zhì)量評(píng)估微服務(wù)運(yùn)維方面積累了豐富的經(jīng)驗(yàn)。 showImg(https://segmentfault.com/img/bVbjqGq); 虎牙直播運(yùn)維負(fù)責(zé)人張觀石 張觀石,擁有10余年網(wǎng)站開(kāi)發(fā)、架構(gòu)、運(yùn)維經(jīng)驗(yàn);目前關(guān)注互聯(lián)網(wǎng)服務(wù)可靠性系統(tǒng)工程、運(yùn)維...

    Jonathan Shieber 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<