javascript
JS中的array和Object的区别
區(qū)別:
數(shù)組表示有序數(shù)據(jù)的集合,對象表示無需數(shù)據(jù)的集合。如果數(shù)據(jù)順序很重要的話,就用數(shù)組,否則就用對象的好。
數(shù)組的數(shù)據(jù)沒有名稱'name'?? 對象的數(shù)據(jù)有名稱 'name' 但是在很多編程語言中有個(gè)叫關(guān)聯(lián)數(shù)組的,這種數(shù)組中的數(shù)據(jù)是有名稱的。
?
如何區(qū)分array和object:
1:通過isarray方法
使用方法: Array.isArray(obj); //obj是檢測的對象 ?
2:通過instanceof運(yùn)算符來判斷
???? instanceof運(yùn)算符左邊是子對象(待測對象),右邊是父構(gòu)造函數(shù)(這里是Array),
具體代碼:
??????????? var obj = {"k1":"v1"};
??????????? var arr = [1,2];
??????????? console.log("對象的結(jié)果:"+(obj instanceof Array));
??????????? console.log("數(shù)組的結(jié)果:"+(arr instanceof Array));
3::使用isPrototypeOf()函數(shù)
原理:檢測一個(gè)對象是否是Array的原型(或處于原型鏈中,不但可檢測直接父對象,還可檢測整個(gè)原型鏈上的所有父對象)
使用方法: parent.isPrototypeOf(child)來檢測parent是否為child的原型;
isPrototypeOf()函數(shù)實(shí)現(xiàn)的功能和instancof運(yùn)算符非常類似;
具體代碼:
Array.prototype.isPrototypeOf(arr)//true表示是數(shù)組,false不是數(shù)組
4:利用構(gòu)造函數(shù)constructor
具體代碼:
??????????? var obj = {"k1":"v1"};
??????????? var arr = [1,2];
??????????? console.log(obj.constructor == Array)
??????????? console.log(arr.constructor == Array)
5:使用typeof(對象)+類型名結(jié)合判斷:
具體代碼:
??????????? function isArrayFour(arr) {
??????????????? if(typeof(arr) === "object") {
??????????????????? if(arr.concat) {
??????????????????????? return 'This is Array'
??????????????????? }else {
??????????????????????? return 'This not Array'
??????????????????? }
??????????????? }
??????????? }
??????????? console.log(typeof(obj))
??????????? console.log(typeof(arr))
??????????? console.log(isArrayFour(obj))
??????????? console.log(isArrayFour(arr))
總結(jié)
以上是生活随笔為你收集整理的JS中的array和Object的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信多开软件(Java版)
- 下一篇: gradle idea java ssm