Seperti yang kita ketahui dari bab Tipe data, ada delapan tipe data dalam JavaScript. Tujuh di antaranya disebut "primitif", karena nilainya hanya berisi satu hal (baik itu string atau angka atau apa pun) Show Sebaliknya, objek digunakan untuk menyimpan kumpulan kunci dari berbagai data dan entitas yang lebih kompleks. Dalam JavaScript, objek menembus hampir setiap aspek bahasa. Jadi kita harus memahaminya terlebih dahulu sebelum mendalaminya di tempat lain Objek dapat dibuat dengan tanda kurung gambar 2 dengan daftar properti opsional. Properti adalah “kunci. nilai", di mana 3 adalah string (juga disebut "nama properti"), dan 4 bisa apa sajaKita dapat membayangkan sebuah objek sebagai lemari dengan file yang ditandatangani. Setiap potongan data disimpan dalam filenya dengan kunci. Sangat mudah untuk menemukan file dengan namanya atau menambah/menghapus file Objek kosong ("kabinet kosong") dapat dibuat menggunakan salah satu dari dua sintaks
Biasanya, tanda kurung gambar 5 digunakan. Deklarasi itu disebut literal objekKami dapat segera memasukkan beberapa properti ke 5 sebagai “key. pasangan nilai”. _Properti memiliki kunci (juga dikenal sebagai "nama" atau "pengidentifikasi") sebelum tanda titik dua 7 dan nilai di sebelah kanannyaDi objek _8, ada dua properti
Objek _8 yang dihasilkan dapat dibayangkan sebagai kabinet dengan dua file bertanda tangan berlabel "nama" dan "umur"Kami dapat menambah, menghapus, dan membaca file darinya kapan saja Nilai properti dapat diakses menggunakan notasi titik
Nilainya bisa dari jenis apa saja. Mari tambahkan yang boolean
Untuk menghapus properti, kita dapat menggunakan operator _4
Kami juga dapat menggunakan nama properti multi-kata, tetapi kemudian harus dikutip
Properti terakhir dalam daftar dapat diakhiri dengan koma
Itu disebut koma "di belakang" atau "menggantung". Memudahkan penambahan/penghapusan/pemindahan properti, karena semua baris menjadi sama Untuk properti banyak kata, akses titik tidak berfungsi
JavaScript tidak mengerti itu. Ia berpikir bahwa kita mengatasi _5, dan kemudian memberikan kesalahan sintaksis saat menemukan 6 yang tidak terdugaTitik membutuhkan kunci untuk menjadi pengidentifikasi variabel yang valid. Itu menyiratkan. tidak mengandung spasi, tidak dimulai dengan angka, dan tidak menyertakan karakter khusus ( 7 dan 8 diperbolehkan)Ada alternatif "notasi braket persegi" yang berfungsi dengan string apa pun
Sekarang semuanya baik-baik saja. Harap dicatat bahwa string di dalam tanda kurung dikutip dengan benar (semua jenis kutipan akan dilakukan) Tanda kurung siku juga menyediakan cara untuk mendapatkan nama properti sebagai hasil dari ekspresi apa pun – berlawanan dengan string literal – seperti dari variabel sebagai berikut
Di sini, variabel 3 dapat dihitung pada saat run-time atau bergantung pada masukan pengguna. Dan kemudian kami menggunakannya untuk mengakses properti. Itu memberi kami banyak fleksibilitasContohnya _0Notasi titik tidak dapat digunakan dengan cara yang sama _1Kita bisa menggunakan tanda kurung siku dalam literal objek, saat membuat objek. Itu disebut properti yang dihitung Contohnya _2Arti dari properti yang dihitung sederhana. 0 artinya nama properti harus diambil dari 1Jadi, jika pengunjung memasukkan _2, 3 akan menjadi 4Pada dasarnya, itu bekerja sama dengan _3… Tapi terlihat lebih bagus Kita dapat menggunakan ekspresi yang lebih kompleks di dalam tanda kurung siku _4Kurung persegi jauh lebih kuat daripada notasi titik. Mereka mengizinkan nama dan variabel properti apa pun. Tetapi mereka juga lebih rumit untuk ditulis Jadi sering kali, ketika nama properti diketahui dan sederhana, titik digunakan. Dan jika kita membutuhkan sesuatu yang lebih kompleks, maka kita beralih ke tanda kurung siku Dalam kode nyata, kita sering menggunakan variabel yang ada sebagai nilai untuk nama properti Contohnya _5Pada contoh di atas, properti memiliki nama yang sama dengan variabel. Kasus penggunaan membuat properti dari variabel sangat umum, sehingga ada singkatan nilai properti khusus untuk membuatnya lebih pendek Alih-alih _5 kita bisa menulis 6, seperti ini _6Kita dapat menggunakan properti normal dan singkatan dalam objek yang sama _7Seperti yang telah kita ketahui, sebuah variabel tidak boleh memiliki nama yang sama dengan salah satu kata yang dilindungi bahasa seperti "untuk", "biarkan", "kembalikan", dll. Tapi untuk properti objek, tidak ada batasan seperti itu _8Singkatnya, tidak ada batasan pada nama properti. Itu bisa berupa string atau simbol apa pun (tipe khusus untuk pengidentifikasi, yang akan dibahas nanti) Jenis lain secara otomatis dikonversi menjadi string Misalnya, angka _7 menjadi string 8 saat digunakan sebagai kunci properti _9Ada gotcha kecil dengan properti khusus bernama 9. Kami tidak dapat mengaturnya ke nilai non-objek _0Seperti yang kita lihat dari kode, penetapan ke 0 primitif diabaikanKami akan membahas sifat khusus 9 di bab selanjutnya, dan menyarankan cara untuk memperbaiki perilaku tersebutFitur penting dari objek dalam JavaScript, dibandingkan dengan banyak bahasa lain, adalah memungkinkan untuk mengakses properti apa pun. Tidak akan ada kesalahan jika properti tidak ada Membaca properti yang tidak ada hanya mengembalikan 2. Jadi kita dapat dengan mudah menguji apakah properti itu ada _1Ada juga operator khusus 3 untuk ituSintaksnya adalah _2Contohnya _3Harap dicatat bahwa di sisi kiri 4 harus ada nama properti. Itu biasanya string yang dikutipJika kita menghilangkan tanda kutip, itu berarti sebuah variabel harus berisi nama sebenarnya yang akan diuji. Contohnya _4Mengapa operator _4 ada? Yah, sebagian besar waktu perbandingan dengan 2 bekerja dengan baik. Tapi ada kasus khusus ketika gagal, tapi 3 bekerja dengan benarSaat itulah properti objek ada, tetapi menyimpan 2 _5Dalam kode di atas, properti 0 secara teknis ada. Jadi operator _4 bekerja dengan benarSituasi seperti ini sangat jarang terjadi, karena 2 tidak boleh ditetapkan secara eksplisit. Kami kebanyakan menggunakan _3 untuk nilai "tidak diketahui" atau "kosong". Jadi operator _4 adalah tamu eksotis dalam kodeUntuk berjalan di atas semua kunci suatu objek, ada bentuk khusus dari loop. 5. Ini adalah hal yang sama sekali berbeda dari konstruksi 6 yang kita pelajari sebelumnyaSintaks _6Misalnya, mari tampilkan semua properti 8 _7Perhatikan bahwa semua konstruksi "untuk" memungkinkan kita untuk mendeklarasikan variabel perulangan di dalam perulangan, seperti 8 di siniJuga, kita bisa menggunakan nama variabel lain di sini, bukan 3. Misalnya, _0 juga banyak digunakanApakah objek dipesan? Jawaban singkatnya adalah. “dipesan dengan cara khusus”. properti bilangan bulat diurutkan, yang lain muncul dalam urutan pembuatan. Detailnya menyusul Sebagai contoh, mari pertimbangkan objek dengan kode telepon _8Objek dapat digunakan untuk menyarankan daftar opsi kepada pengguna. Jika kami membuat situs terutama untuk pemirsa Jerman, kami mungkin ingin 1 menjadi yang pertamaTetapi jika kita menjalankan kodenya, kita melihat gambaran yang sama sekali berbeda
Kode telepon masuk dalam urutan terurut menaik, karena merupakan bilangan bulat. Jadi kita melihat 2Properti bilangan bulat? Istilah "properti bilangan bulat" di sini berarti string yang dapat dikonversi ke-dan-dari bilangan bulat tanpa perubahan Jadi, _3 adalah nama properti bilangan bulat, karena ketika diubah menjadi bilangan bulat dan sebaliknya, masih tetap sama. Tapi 4 dan 5 tidak _9…Sebaliknya, jika kunci bukan bilangan bulat, maka kunci tersebut dicantumkan dalam urutan pembuatan, misalnya 0Jadi, untuk memperbaiki masalah kode telepon, kita bisa "menipu" dengan membuat kode non-integer. Menambahkan tanda tambah _6 sebelum setiap kode sudah cukupSeperti ini _1Sekarang berfungsi sebagaimana dimaksud Objek adalah array asosiatif dengan beberapa fitur khusus Mereka menyimpan properti (pasangan kunci-nilai), di mana
Untuk mengakses sebuah properti, kita dapat menggunakan
Operator tambahan
Apa yang telah kita pelajari dalam bab ini disebut "objek biasa", atau hanya 3Ada banyak jenis objek lain di JavaScript
Mereka memiliki fitur khusus yang akan kita pelajari nanti. Kadang-kadang orang mengatakan sesuatu seperti "tipe Array" atau "tipe Tanggal", tetapi secara formal mereka bukan tipe mereka sendiri, tetapi milik tipe data "objek" tunggal. Dan mereka memperluasnya dengan berbagai cara Objek dalam JavaScript sangat kuat. Di sini kami baru saja menggores permukaan topik yang sangat besar. Kita akan bekerja erat dengan objek dan mempelajari lebih lanjut tentangnya di bagian selanjutnya dari tutorial ini Apakah properti dalam objek JavaScript?Objek adalah kumpulan properti, dan properti adalah asosiasi antara nama (atau kunci) dan nilai . Nilai properti dapat berupa fungsi, dalam hal ini properti tersebut dikenal sebagai metode. Objek di JavaScript, seperti halnya di banyak bahasa pemrograman lainnya, dapat dibandingkan dengan objek di kehidupan nyata.
Apakah benda memiliki sifat?Properti adalah atribut dari objek atau aspek perilakunya . Misalnya, properti dokumen menyertakan namanya, kontennya, dan status penyimpanannya, dan apakah pelacakan perubahan diaktifkan. Untuk mengubah karakteristik objek, Anda mengubah nilai propertinya.
Bagaimana cara memeriksa bahwa objek memiliki properti di js?Metode hasOwnProperty() akan memeriksa apakah objek berisi properti langsung dan akan mengembalikan true atau false jika ada atau tidak. Metode hasOwnProperty() hanya akan mengembalikan true untuk properti langsung dan bukan properti yang diwarisi dari rantai prototipe.
Mengapa properti objek tidak ditentukan JavaScript?Undefined berarti bahwa sebuah variabel telah dideklarasikan tetapi belum diberi nilai . Dalam JavaScript, properti dan fungsi hanya dapat dimiliki oleh objek. Karena undefined bukan tipe objek, memanggil fungsi atau properti pada variabel tersebut menyebabkan TypeError. Tidak dapat membaca properti yang tidak terdefinisi. |