成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

senntyou / 1277人閱讀

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

區(qū)別對象和數(shù)組的六種方法
(1)方法一:利用toString方法
通過調(diào)用toString( )方法試著將該變量轉(zhuǎn)化為代表其類型的string。該方法對于真正的array可行;參數(shù)對象轉(zhuǎn)化為string時(shí)
返回[object Arguments]會(huì)轉(zhuǎn)化失?。淮送猓?對于含有數(shù)字長度屬性的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("對象的結(jié)果:"+isArrayOne(obj));  
7. console.log("數(shù)組的結(jié)果:"+isArrayOne(arr));  

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

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

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

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


4)使用isPrototypeOf()函數(shù)
原理:檢測一個(gè)對象是否是Array的原型(或處于原型鏈中,不但可檢測直接父對象,還可檢測整個(gè)原型鏈上的所有父對象)
使用方法: parent.isPrototypeOf(child)來檢測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 屬性返回對創(chuàng)建此對象的數(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(對象)+類型名結(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/98061.html

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    Jonathan Shieber 評論0 收藏0

發(fā)表評論

0條評論

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