回答
似乎没有人能够解释数组和对象之间的区别。
[]
正在声明一个数组。
{}
正在宣告一个对象。
一个数组具有一个对象的所有功能,它具有附加功能(您可以将数组看作对象的子类),其中在子类中添加了其他方法和功能。实际上,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