javascript
JS中的array和Object的区别
區別:
數組表示有序數據的集合,對象表示無需數據的集合。如果數據順序很重要的話,就用數組,否則就用對象的好。
數組的數據沒有名稱'name'?? 對象的數據有名稱 'name' 但是在很多編程語言中有個叫關聯數組的,這種數組中的數據是有名稱的。
?
如何區分array和object:
1:通過isarray方法
使用方法: Array.isArray(obj); //obj是檢測的對象 ?
2:通過instanceof運算符來判斷
???? instanceof運算符左邊是子對象(待測對象),右邊是父構造函數(這里是Array),
具體代碼:
??????????? var obj = {"k1":"v1"};
 ??????????? var arr = [1,2];
 ??????????? console.log("對象的結果:"+(obj instanceof Array));
 ??????????? console.log("數組的結果:"+(arr instanceof Array));
3::使用isPrototypeOf()函數
原理:檢測一個對象是否是Array的原型(或處于原型鏈中,不但可檢測直接父對象,還可檢測整個原型鏈上的所有父對象)
使用方法: parent.isPrototypeOf(child)來檢測parent是否為child的原型;
isPrototypeOf()函數實現的功能和instancof運算符非常類似;
具體代碼:
Array.prototype.isPrototypeOf(arr)//true表示是數組,false不是數組
4:利用構造函數constructor
具體代碼:
??????????? var obj = {"k1":"v1"};
 ??????????? var arr = [1,2];
 ??????????? console.log(obj.constructor == Array)
 ??????????? console.log(arr.constructor == Array)
5:使用typeof(對象)+類型名結合判斷:
具體代碼:
??????????? 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))
總結
以上是生活随笔為你收集整理的JS中的array和Object的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 微信多开软件(Java版)
- 下一篇: Cocos2D中相关问题提问的几个论坛
