Ответы:
Первый и третий эквивалентны и создают новый массив. Второй создает новый пустой объект, а не массив.
var myArray = []; //create a new array
var myArray = {}; //creates **a new empty object**
var myArray = new Array(); //create a new array
myObject["someValue"]или myObject.someValue. Пустой объект, созданный с помощью {}, конечно, не будет иметь этих свойств, но вы можете назначить их таким же образом:myObject.someValue = "hello!"
var a = new Array(5)и var b = [5], то a≠b (поскольку a.length= 5, в то время как b.length= 1, a[0]это undefinedвремя b[0]равно 5, и т. Д.)
var a;и var a = {};то же самое?
var myObject = {}; эквивалентно var myObject = new Object();
Итак, второй пример - не общий, Arrayа общий Object.
Это может сбивать с толку как Arrayкласс, так и Objectкласс, точнее, Arrayподкласс Object. Итак, в целом Objectсемантика применима к Array:
var o = [];
o.push('element1');
o.push('element2');
o['property1'] = 'property value'; // define a custom property.
console.log(o.property1);
console.log(o.length); // Outputs '2' as we've only push()'ed two elements onto the Array
o['property1'] = 'property value'вы фактически не добавляете элемент в массив, а устанавливаете свойство объекта массива . Смущенный? Я сказал тебе;) В JavaScript в основном все является объектом. Другие объекты, как Array, RegExp... расширить базовый объект с дополнительной функциональностью. Простой пустой объект создается с помощью фигурных скобок plain_obj = {}.