回答
似乎沒有人能夠解釋數組和對象之間的區別。
[]
正在聲明一個數組。
{}
正在宣告一個對象。
一個數組具有一個對象的所有功能,它具有附加功能(您可以將數組看作對象的子類),其中在子類中添加了其他方法和功能。實際上,typeof [] === "object"
爲了進一步向你展示一個數組是一個對象。
的附加功能包括一個神奇的.length
屬性,跟蹤數組中的項目數和方法陣列上運行的整體轉換的,如.push()
,.pop()
,.slice()
,.splice()
,等等......你可以看到數組方法here的列表。
一個目的爲您提供了一個屬性名稱與值作爲相關聯的能力:
var x = {};
x.foo = 3;
x["whatever"] = 10;
console.log(x.foo); // shows 3
console.log(x.whatever); // shows 10
對象屬性可以經由x.foo
語法或通過陣列狀語法x["foo"]
進行訪問。後一種語法的優點是可以使用變量作爲屬性名稱,如x[myvar]
,並使用後一種語法,可以使用包含字符的屬性名稱,該字符在x.foo
語法中不允許使用Javascript。
屬性名稱可以是任何字符串值。
數組是一個對象,因此它有一個對象的所有相同的功能,加上用於管理有序,連續從0
開始,往上走一些編號的索引列表一堆附加功能長度。數組通常用於數字索引訪問的項目的有序列表。而且,由於陣列是有序的,因此有很多有用的功能來管理列表.sort()
的順序或添加或刪除列表中的內容。
的meanning當你聲明
var a=[];
你聲明一個空數組。
但是當你宣佈
var a={};
你聲明的對象。
儘管Array也是Javascript中的對象,但它是數字鍵配對值。 它具有對象的所有功能,但添加了一些像Push,Splice,Length等數組的方法。
所以,如果你想要一些值,你需要使用數字鍵使用數組。 其他使用對象。 你可以創建這樣的對象:
var a={name:"abc",age:"14"};
,並且可以訪問像
console.log(a.name);
值,可以理解是這樣的:
var a= []; //creates a new empty array
var a= {}; //creates a new empty object
你也可以理解
var a = {};
相當於var a= new Object();
注:
您可以使用數組時,你是不屑關於元素的您的收藏順序(同一類型的),否則你可以使用對象。在對象中,訂單不能保證。
它們是兩個不同的東西..
[]
的聲明數組:
給出的數字索引保存元素的列表。
{}
被聲明一個新的對象:
給出,與名稱和類型+值字段,
有的喜歡把它看作「關聯數組」的對象。 但它們的表示中不是數組。
你可以閱讀更多@This Article
語法JSON的
對象= {} | {會員}
- members = pair |對,成員
- 對=字符串:值
陣列= [] | [elements]
- elements = value |值元素
值= 串|數|對象|陣列|真|假|空
var a = [];
它是使用於括號內爲簡單值的陣列。 例如。
var name=["a","b","c"]
var a={}
也用於值數組和對象/屬性。 例如。
var programmer = { 'name':'special', 'url':'www.google.com'}
在JavaScript中,數組和對象實際上非常相似,儘管在外部它們看起來有點不同。
對於數組:
var array = [];
array[0] = "hello";
array[1] = 5498;
array[536] = new Date();
正如你可以看到在JavaScript中數組可以是稀疏的(有效索引不必是連續的),他們可以包含任何類型的變量!這很方便。
但大家都知道JavaScript是奇怪的,所以這裏有一些奇怪的位:
array["0"] === "hello"; // This is true
array["hi"]; // undefined
array["hi"] = "weird"; // works but does not save any data to array
array["hi"]; // still undefined!
這是因爲一切都在JavaScript是一種對象(這就是爲什麼你還可以創建使用new Array()
數組)。因此,數組中的每個索引都被轉換爲一個字符串,然後存儲在一個對象中,所以數組只是一個對象,不允許任何人使用非正整數的鍵存儲任何內容。
那麼什麼是對象?
JavaScript中的對象與數組類似,但「索引」可以是任何字符串。
var object = {};
object[0] = "hello"; // OK
object["hi"] = "not weird"; // OK
您甚至可以選擇在使用對象時不使用方括號!
console.log(object.hi); // Prints 'not weird'
object.hi = "overwriting 'not weird'";
可以更進一步和定義對象像這樣:
var newObject = {
a: 2,
};
newObject.a === 2; // true
- 1. &c和* c聲明有什麼區別?
- 2. 每個聲明和每個聲明有什麼區別?
- 3. 在聲明變量時使用「」和「'和()有什麼區別?
- 4. 這兩個函數聲明在JavaScript中有什麼區別?
- 5. JavaScript中的函數表達式與聲明有什麼區別?
- 6. 這兩個聲明有什麼區別?
- 7. 這兩個聲明有什麼區別?
- 8. 這兩個聲明有什麼區別?
- 9. 這兩個聲明有什麼區別?
- 10. 這些#import聲明有什麼區別?
- 11. 函數聲明和簽名有什麼區別?
- 12. 聲明Stream與try-with-resources聲明之間有什麼區別?
- 13. 這些聲明(JavaScript中)有什麼區別?
- 14. 這兩個聲明在反應JavaScript之間有什麼區別?
- 15. 用屬性聲明實例變量或不聲明時有什麼區別?
- 16. 數組和ArrayList有什麼區別?
- 17. 數組和散列有什麼區別?
- 18. IEnumerable和數組有什麼區別?
- 19. 字典和數組有什麼區別?
- 20. int和char數組有什麼區別?
- 21. XML中的「處理指令」和「聲明性聲明」之間有什麼區別?
- 22. 在swift中聲明這些變量時有什麼區別!或()
- 23. 聲明變量「id」和「NSObject *」有什麼區別?
- 24. 在vb.net中聲明爲new和as something = new有什麼區別?
- 25. 初始化字典和在Swift中聲明有什麼區別?
- 26. C#中「Class」和「Private Class」聲明有什麼區別?
- 27. [BITS 32]聲明和BITS 32之間有什麼區別?
- 28. datalines和卡片聲明有什麼區別
- 29. 聲明式編程和命令式編程有什麼區別?
- 30. Javascript - 函數聲明之間的區別
'VAR一個= {};'是一個對象_key-VALUE_對。 'var a = [];'是存儲在順序索引中的數組值。 – Tushar
當你使用'{}'時,你並沒有創建數組,你正在創建'object' – Rayon
確切的問題是什麼? _object_和_array_之間的區別?你想做什麼?添加一些代碼 – Tushar