Apa perbedaan antara masing-masing definisi larik berikut.
var myArray = [];
var myArray = {};
var myArray = new Array();
Apa perbedaan antara masing-masing definisi larik berikut.
var myArray = [];
var myArray = {};
var myArray = new Array();
Jawaban:
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
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!"
var a = new Array(5)dan var b = [5], maka a≠ b(karena a.length= 5 sementara b.length= 1, a[0]adalah undefinedsaat b[0]5, dan seterusnya.)
var a;dan var a = {};sama?
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
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 = {}.