Скобки скобок JavaScript и скобки

В чем разница между каждым из следующих определений массивов.

var myArray = [];
var myArray = {};
var myArray = new Array();

Ответ 1

Первый и третий эквивалентны и создают новый массив. Второй создает новый пустой объект, а не массив.

var myArray = []; //create a new array
var myArray = {}; //creates **a new empty object**
var myArray = new Array(); //create a new array

Ответ 2

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