Відповіді:
Перший і третій еквівалентні і створюють новий масив. Другий створює новий порожній об’єкт, а не масив.
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 = {};
еквівалентний вар 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 = {}
.