Qual é a diferença entre cada uma das seguintes definições de array.
var myArray = [];
var myArray = {};
var myArray = new Array();
javascript
arrays
Pinkie
fonte
fonte
myObject["someValue"]
oumyObject.someValue
. O objeto vazio criado por{}
certamente não terá essas propriedades, mas você pode atribuir a eles da mesma maneira:myObject.someValue = "hello!"
var a = new Array(5)
evar b = [5]
, entãoa
≠b
(visto quea.length
= 5 enquantob.length
= 1,a[0]
éundefined
enquantob[0]
é 5 e assim por diante.)var a;
evar a = {};
o mesmo?var myObject = {};
é equivalente a varmyObject = new Object();
Portanto, o segundo exemplo não é um,
Array
mas um geralObject
.Isso pode ficar confuso, pois
Array
é uma classe eObject
é uma classe - mais precisamenteArray
é uma subclasse deObject
. Portanto, em geral, aObject
semântica é aplicável aArray
:fonte
o['property1'] = 'property value'
, você não está realmente adicionando um elemento à matriz, mas definindo uma propriedade do objeto da matriz . Confuso? Eu te disse;) Em JavaScript, basicamente tudo é um objeto. Outros objetos, comoArray
,RegExp
... estendem o objeto básico com funcionalidade adicional. Um objeto simples e vazio é criado com as chavesplain_obj = {}
.