false.tostring (); // 'false' [1, 2, 3] .tostring (); // '1,2,3'function foo () {} foo.bar = 1; foo.bar; // 1Satu hal yang sering disalahpahami adalah bahwa konstanta numerik tidak dapat dianggap sebagai objek, tetapi pada kenyataannya konstanta numerik masih dapat dianggap sebagai objek. Ini karena parser JavaScript membuat kesalahan ketika penguraian operator titik dan memperlakukannya sebagai fitur titik mengambang.
2.tostring (); // Mengangkat Sintakserror
Bahkan, kami memiliki banyak cara untuk membuat numerik konstan berperilaku sebagai objek.
2..tostring (); // Poin kedua dikenali dengan benar2 .toString (); // Perhatikan ruang yang tersisa ke titik (2) .tostring (); // 2 dievaluasi terlebih dahulu
Objek sebagai tipe data
Objek dalam JavaScript dapat digunakan sebagai tabel hash, dan mereka terutama berisi hubungan yang sesuai antara kunci dan nilai.
Gunakan simbol {} untuk membuat objek sederhana. Objek yang baru dibuat ini akan mewarisi dari objek.prototype dan tidak mengandung properti yang didefinisikannya sendiri.
var foo = {}; // Objek kosong baru // Objek baru dengan properti 'tes' dengan nilai 12var bar = {test: 12};Mengakses properti objek
Kami dapat menggunakan dua cara untuk mengakses objek JavaScript, yaitu operator DOT. dan operator braket [].
var foo = {name: 'kitten'} foo.name; // kittenfoo ['name']; // kittenvar get = 'name'; foo [get]; // kittenfoo.1234; // sintakserrorfoo ['1234']; // bekerjaEfek dari dua operator hampir sama, satu -satunya perbedaan adalah bahwa operator braket memungkinkan pengaturan dinamis properti dan nama atribut dapat memiliki kesalahan sintaks. (Kasus ketiga dalam contoh di atas telah dijelaskan)
Hapus Properti Objek
Satu -satunya cara untuk menghapus properti adalah dengan menggunakan Delete, mengatur nilai properti yang tidak terdefinisi atau null saja hapus nilai yang terkait dengan properti dan tidak benar -benar menghapus properti itu sendiri.
var obj = {bar: 1, foo: 2, baz: 3}; obj.bar = tidak terdefinisi; obj.foo = null; hapus obj.baz; untuk (var i di obj) {if (obj.hasownproperty (i)) {console.log (i, '' + obj [i]); }}Bilah keluaran di atas tidak terdefinisi dan foo null, hanya Baz yang benar -benar dihapus.
Harus dijelaskan di sini bahwa Delete hanya dapat menghapus atribut, bukan variabel. Oleh karena itu, ketika mendefinisikan variabel, kita harus mengembangkan kebiasaan menulis yang baik. Kapan saja, variabel harus dinyatakan menggunakan kata kunci VAR. Karena jika Anda tidak menulis VAR, variabel akan keliru untuk objek global dan membuat properti baru.
Contoh ini memberikan jawaban dengan cukup jelas, A adalah variabel, dan B hanyalah properti dari objek global.
Properti objek bernama
var test = {'case': 'Saya adalah kata kunci, jadi saya harus dinotasikan sebagai string', hapus: 'Saya adalah kata kunci, jadi saya juga' // meningkatkan sintakserror};Properti suatu objek dapat dinamai dengan karakter atau string normal. Juga karena desain parser JavaScript yang salah, metode representasi kedua dalam contoh di atas akan melempar kesalahan dalam ecmascript 5.
Alasan kesalahannya adalah bahwa Delete adalah kata kunci, jadi konstanta string harus dinamai untuk beradaptasi dengan versi lama Parser JavaScript.