声明 JavaScript 数组时,“{}”和“[]”有什么区别?
What’s the difference between “{}” and “[]” while declaring a JavaScript array?
声明JavaScript数组时,“{}”和“[]”有什么区别?
通常我声明像
var a=[];
数组声明为var a={}
是什么意思
当你声明时
var a=[];
您正在声明一个空数组。
但是当你在声明的时候
var a={};
您正在声明一个对象。
虽然Array在Javascript中也是Object,但它是数字键对值。
它具有对象的所有功能,但增加了一些数组的方法,如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();
注:
当您担心集合中元素(相同类型)的顺序时,您可以使用数组,否则您可以使用对象。对象中的顺序无法保证。
它们是两个不同的东西..
[]
正在声明一个数组:
给定,由数字索引保存的元素列表。
{}
正在声明一个新对象:
给定,一个包含名称和类型+值的字段的对象,
有些人喜欢将其视为 "Associative Array"。
但在它们的表示中不是数组。
你可以阅读更多@This Article
似乎没有人解释数组和对象之间的区别。
[]
正在声明一个数组。
{}
正在声明一个对象。
数组具有对象的所有特性以及附加特性(您可以将数组想象成对象的子class),其中在数组子[中添加了额外的方法和功能=49=]。事实上,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]
并使用后一种语法,您可以使用包含 [=51= 字符的 属性 名称] 不允许使用 x.foo
语法。
A 属性 名称可以是任何字符串值。
数组是一个对象,因此它具有与对象相同的所有功能,外加一系列用于管理 有序、顺序[=47] 的附加功能=] 编号索引列表,从 0
开始并达到一定长度。数组通常用于按数字索引访问的有序项目列表。而且,因为数组是有序的,所以有很多有用的功能来管理列表的顺序 .sort()
或者在列表中添加或删除内容。
JSON
的语法
对象 = {} | { 成员 }
- 成员 = 对 |对,成员
- 对=字符串:值
数组 = [] | [ 元素 ]
- 元素=值|值元素
价值=
字符串|数字|对象|数组|真|假|空
var a = [];
它用于简单值数组的括号。
例如
var name=["a","b","c"]
var a={}
用于值数组,objects/properties 也用于。
例如
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 中的对象就像数组,但 "index" 可以是任何字符串。
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
[ ]
- 每当我们声明一个空数组时都会使用它,
{ }
- 每当我们声明一个空对象时都会使用它
typeof([ ]) //object
typeof({ }) //object
但是如果你的运行
[ ].constructor.name //Array
所以从这里,你就会明白这里是一个数组 Array 是基数的名字class。
JavaScript 数组 class 是一个全局对象,用于构造类似于列表的高级对象的数组。
声明JavaScript数组时,“{}”和“[]”有什么区别? 通常我声明像
var a=[];
数组声明为var a={}
当你声明时
var a=[];
您正在声明一个空数组。
但是当你在声明的时候
var a={};
您正在声明一个对象。
虽然Array在Javascript中也是Object,但它是数字键对值。 它具有对象的所有功能,但增加了一些数组的方法,如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();
注:
当您担心集合中元素(相同类型)的顺序时,您可以使用数组,否则您可以使用对象。对象中的顺序无法保证。
它们是两个不同的东西..
[]
正在声明一个数组:
给定,由数字索引保存的元素列表。
{}
正在声明一个新对象:
给定,一个包含名称和类型+值的字段的对象,
有些人喜欢将其视为 "Associative Array"。
但在它们的表示中不是数组。
你可以阅读更多@This Article
似乎没有人解释数组和对象之间的区别。
[]
正在声明一个数组。
{}
正在声明一个对象。
数组具有对象的所有特性以及附加特性(您可以将数组想象成对象的子class),其中在数组子[中添加了额外的方法和功能=49=]。事实上,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]
并使用后一种语法,您可以使用包含 [=51= 字符的 属性 名称] 不允许使用 x.foo
语法。
A 属性 名称可以是任何字符串值。
数组是一个对象,因此它具有与对象相同的所有功能,外加一系列用于管理 有序、顺序[=47] 的附加功能=] 编号索引列表,从 0
开始并达到一定长度。数组通常用于按数字索引访问的有序项目列表。而且,因为数组是有序的,所以有很多有用的功能来管理列表的顺序 .sort()
或者在列表中添加或删除内容。
JSON
的语法对象 = {} | { 成员 }
- 成员 = 对 |对,成员
- 对=字符串:值
数组 = [] | [ 元素 ]
- 元素=值|值元素
价值= 字符串|数字|对象|数组|真|假|空
var a = [];
它用于简单值数组的括号。 例如
var name=["a","b","c"]
var a={}
用于值数组,objects/properties 也用于。 例如
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 中的对象就像数组,但 "index" 可以是任何字符串。
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
[ ]
- 每当我们声明一个空数组时都会使用它,
{ }
- 每当我们声明一个空对象时都会使用它
typeof([ ]) //object
typeof({ }) //object
但是如果你的运行
[ ].constructor.name //Array
所以从这里,你就会明白这里是一个数组 Array 是基数的名字class。 JavaScript 数组 class 是一个全局对象,用于构造类似于列表的高级对象的数组。