В чем разница между "{}" и "[]" при объявлении массива JavaScript? Обычно я заявляю, что
var a=[];
что означает объявление объявления массива как var a={}
В чем разница между "{}" и "[]" при объявлении массива JavaScript? Обычно я заявляю, что
var a=[];
что означает объявление объявления массива как var a={}
Кажется, никто не объясняет разницу между массивом и объектом.
[]
объявляет массив.
{}
объявляет объект.
Массив имеет все функции объекта с дополнительными функциями (вы можете думать о массиве, подобном подклассу объекта), где в подкласс 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()
из списка.
Когда вы заявляете
var a=[];
вы объявляете пустой массив.
Но когда вы объявляете
var a={};
вы объявляете объект.
Хотя Array также является объектом в Javascript, но это числовые парные значения. У которых есть все функциональные возможности объекта, но добавлено несколько методов массива, таких как Push, Splice, Length и т.д.
Поэтому, если вы хотите Некоторые значения, где вам нужно использовать числовые клавиши, используйте Array. иначе используйте объект. вы можете создать объект как:
var a={name:"abc",age:"14"};
И может получить доступ к таким значениям, как
console.log(a.name);
var a = [];
это использование для скобок для массива простых значений. например.
var name=["a","b","c"]
var a={}
используется также для массивов значений и объектов/свойств. например.
var programmer = { 'name':'special', 'url':'www.google.com'}
Это можно понять так:
var a= []; //creates a new empty array
var a= {}; //creates a new empty object
Вы также можете понять, что
var a = {};
эквивалентно var a= new Object();
Заметка:
Вы можете использовать Массивы, когда вас беспокоит порядок элементов (одного и того же типа) в вашей коллекции, иначе вы можете использовать объекты. В объектах заказ не гарантируется.
это две разные вещи.
[]
объявляет массив:
данный, список элементов, хранящихся в числовом индексе.
{}
объявляет новый объект:
данный объект с полями с именами и значением типа +
некоторым нравится думать об этом как "Ассоциативный массив". но не являются массивами в их представлении.
Вы можете прочитать больше @Эта статья
Синтаксис JSON
object = {} | {members}
array = [] | [элементы]
value = string | number | object | array | true | false | null
В 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