Array JavaScript kurung vs kurung

111

Apa perbedaan antara masing-masing definisi larik berikut.

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

Jawaban:

137

Yang pertama dan ketiga sama dan membuat array baru. Yang kedua membuat objek kosong baru, bukan array.

var myArray = []; //create a new array
var myArray = {}; //creates **a new empty object**
var myArray = new Array(); //create a new array
johusman
sumber
Bagaimana kita mengakses nilai obyek.
Pinkie
3
Dengan tanda kurung atau notasi titik: myObject["someValue"]atau myObject.someValue. Objek kosong yang dibuat oleh {}tentu saja tidak akan memiliki properti tersebut, tetapi Anda dapat menetapkannya dengan cara yang sama:myObject.someValue = "hello!"
johusman
4
Dalam kasus khusus ini 1 dan 3 memiliki efek yang sama. Namun terkadang, mereka berperilaku berbeda. Misalnya, jika var a = new Array(5)dan var b = [5], maka ab(karena a.length= 5 sementara b.length= 1, a[0]adalah undefinedsaat b[0]5, dan seterusnya.)
Hunan Rostomyan
adalah var a;dan var a = {};sama?
RNA
31

var myObject = {}; setara dengan var myObject = new Object();

Jadi, contoh kedua bukanlah seorang Arraymelainkan seorang jenderal Object.

Ini bisa membingungkan seperti Arraykelas dan Objectkelas - lebih tepatnya Arrayadalah sub-kelas Object. Jadi, pada umumnya, Objectsemantik berlaku untuk 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
leepowers
sumber
2
dimana property1 disimpan. Apakah tidak dalam array
Pinkie
9
@ Pink: Ini semakin membingungkan sekarang: Array adalah objek juga . Dengan melakukan o['property1'] = 'property value', Anda sebenarnya tidak menambahkan elemen ke array, tetapi menyetel properti objek array . Bingung? Saya bilang ya;) Dalam JavaScript, pada dasarnya semuanya adalah objek. Objek lain, seperti Array,, RegExp... memperluas objek dasar dengan fungsionalitas lebih lanjut. Objek polos dan kosong dibuat dengan tanda kurung kurawal plain_obj = {}.
Felix Kling