В чем разница между "{}" и "[]" при объявлении массива JavaScript?

В чем разница между "{}" и "[]" при объявлении массива JavaScript? Обычно я заявляю, что

var a=[];

что означает объявление объявления массива как var a={}

Ответ 1

Кажется, никто не объясняет разницу между массивом и объектом.

[] объявляет массив.

{} объявляет объект.

Массив имеет все функции объекта с дополнительными функциями (вы можете думать о массиве, подобном подклассу объекта), где в подкласс Array добавляются дополнительные методы и возможности. Фактически, typeof [] === "object" чтобы показать вам, что массив является объектом.

Дополнительные возможности включают в себя волшебную .length собственности, которая отслеживает количество элементов в массиве и Уйму методов, работающие на матрице, такие как .push(), .pop(), .slice(), .splice(), и т.д... Вы можете увидеть список методов массивов здесь.

Объект дает вам возможность связать имя свойства со значением, как в:

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] и используя последний синтаксис, вы можете использовать имена свойств, которые содержат символы, которые Javascript не разрешит в синтаксисе x.foo.

Имя свойства может быть любым строковым значением.


Массив - это объект, поэтому он имеет все те же возможности объекта и множество дополнительных функций для управления упорядоченным, последовательным списком нумерованных индексов, начиная с 0 и приближаясь к некоторой длине. Массивы обычно используются для упорядоченного списка элементов, к которым обращается числовой индекс. И поскольку массив упорядочен, существует множество полезных функций для управления порядком списка .sort() или для добавления или удаления .sort() из списка.

Ответ 2

Когда вы заявляете

var a=[];

вы объявляете пустой массив.

Но когда вы объявляете

var a={};

вы объявляете объект.

Хотя Array также является объектом в Javascript, но это числовые парные значения. У которых есть все функциональные возможности объекта, но добавлено несколько методов массива, таких как Push, Splice, Length и т.д.

Поэтому, если вы хотите Некоторые значения, где вам нужно использовать числовые клавиши, используйте Array. иначе используйте объект. вы можете создать объект как:

var a={name:"abc",age:"14"}; 

И может получить доступ к таким значениям, как

console.log(a.name);

Ответ 3

var a = [];

это использование для скобок для массива простых значений. например.

var name=["a","b","c"]

var a={}

используется также для массивов значений и объектов/свойств. например.

var programmer = { 'name':'special', 'url':'www.google.com'}

Ответ 4

Это можно понять так:

var a= []; //creates a new empty array
var a= {}; //creates a new empty object

Вы также можете понять, что

var a = {}; эквивалентно var a= new Object();

Заметка:

Вы можете использовать Массивы, когда вас беспокоит порядок элементов (одного и того же типа) в вашей коллекции, иначе вы можете использовать объекты. В объектах заказ не гарантируется.

Ответ 5

это две разные вещи.

[] объявляет массив:
данный, список элементов, хранящихся в числовом индексе.

{} объявляет новый объект:
данный объект с полями с именами и значением типа +
некоторым нравится думать об этом как "Ассоциативный массив". но не являются массивами в их представлении.

Вы можете прочитать больше @Эта статья

Ответ 6

Синтаксис JSON

object = {} | {members}

  • члены = пара | пара, участники
  • Пара = строка: значение

array = [] | [элементы]

  • elements = значение | элементы ценности

value = string | number | object | array | true | false | null

Ответ 7

В 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