Perkenalan
Kita semua tahu bahwa tipe data JavaScript dibagi menjadi dua kategori: tipe dasar (atau tipe primitif) dan tipe referensi.
Nilai tipe dasar adalah segmen sederhana dari data yang disimpan dalam memori tumpukan, dan mereka diakses berdasarkan nilai. Ada lima tipe dasar di JS: tidak terdefinisi, nol, boolean, angka, dan string.
Nilai jenis referensi adalah objek yang disimpan dalam memori heap, dan nilainya diakses dengan referensi. Jenis referensi terutama objek, array, fungsi, regexp, dan tanggal.
Objek memiliki properti dan metode, sehingga tidak mengherankan bahwa kita melihat kode berikut.
var favs = ['telur', 'lotus pot']; favs.push ('okra'); console.log (favs); // ["telur", "pot lotus", "okra"] console.log (favs.length); // 3Array adalah jenis referensi, sehingga secara alami dapat memiliki atribut (panjang) dan metode (dorong), yang alami seperti harus makan es krim di musim panas. Tapi, lihat kode berikut dan pikirkan dengan cermat, apakah ini, ini, ini, legal?
var realmessage = "bilang aku mencintaimu tapi aku berbohong"; var myMessage = realmessage.substring (5,15); console.log (myMessage); //"Aku mencintaimu"
Ada seorang gadis yang patah hati yang akan melakukan metode "substring" dengan sengaja melakukan metode "substring" pada string yang digunakan untuk putus, dan kemudian dengan senang hati menonton potongan dan tertidur. Tapi, tapi, bukankah itu dikatakan bahwa string adalah tipe dasar? Mengapa dapat memiliki metode? ? Apakah ada hukum raja lainnya, Master Qingtian!
Bahkan, semua ini karena sesuatu yang disebut "tipe pengemasan dasar". Jenis pengemasan dasar ini sangat jujur, dan itu adalah yang sebenarnya "mengembalikan pakaian setelah masalah ini, menyembunyikan jasa dan ketenaran"!
Jenis kemasan dasar
Selain jenis referensi seperti objek dan array yang disebutkan di awal, JavaScript juga memberi kami tiga jenis referensi khusus: String, Number dan Boolean, yang memfasilitasi kami untuk mengoperasikan tipe dasar yang sesuai.
Terus lihat contoh di atas dari string kliping. Pernahkah Anda memperhatikan bahwa meskipun menggunakan metode substring, nilai Realmessage itu sendiri tidak akan berubah. Memanggil metode ini hanya mengembalikan string baru.
Inilah yang dilakukan tipe pengemasan dasar. Awalnya, Anda tidak memiliki metode, tetapi ketika Anda ingin menggunakannya, Anda bisa menyesuaikannya dan jenis kemasan dasar yang sesuai memiliki metode ini. Sebagai contoh, metode substring di atas, tidak mungkin untuk tipe dasar string untuk memiliki metode ini, tetapi jenis pengemasan string memilikinya, ia akan membisikkan dan mengembalikan hasilnya setelah menjalankan metode ini. Tentang eksekusi ke:
Banyak hal terjadi ketika RealMessage.substring (5,15) Baris kode ini.
Pertama, itu akan membaca nilai realmessage dari memori. Ketika dalam mode membaca ini, latar belakang mulai bekerja. JS Elevation menjelaskan tindakan ini yang diselesaikan di latar belakang seperti ini:
1. Buat instance tipe string;
2. Panggil metode yang ditentukan pada instance;
3. Hancurkan contoh ini
Contoh di atas dapat dijelaskan dalam kode seperti ini:
var _RealMessage = string baru ("Said I Love You TAPI I Lied"); var myMessage = _realmessage.substring (5,15); _ realmessgae = null; // Hancurkan setelah metode dipanggilJadi, dengan cara ini kami memahami bahwa bukan bahwa string tipe dasar menjalankan metodenya sendiri, tetapi latar belakang membuat string tipe pembungkus dasar yang sesuai untuk itu. Ini membuat instansi berdasarkan nilai tipe dasar, membiarkan instance ini memanggil metode yang ditentukan, dan akhirnya menghancurkan dirinya sendiri, yang bergerak.
Perhatikan fitur "hancurkan" dari langkah terakhir dari tipe pembungkus dasar, yang menentukan bahwa kami tidak dapat menambahkan properti dan metode khusus ke nilai tipe dasar.
var me = "sunjing"; me.age = 18; console.log (me.age); // tidak ditentukan
Saya menambahkan atribut usia ke string "Me", dan nilainya diatur untuk menjadi cantik 18 tahun. Namun, ketika saya mengakses lagi, atribut ini hilang. Hal ini dikarenakan:
Ketika baris kedua dari penugasan atribut kode dilakukan, instance dari jenis pembungkus dasar dibuat di latar belakang. Atribut usia ini memang digantung pada contoh, tetapi segera setelah itu, contohnya dihancurkan. Saat mengeksekusi ke baris ketiga, contoh baru dari jenis pembungkus dasar diciptakan kembali, dan tentu saja tidak ada atribut usia.
Tampilkan Jenis Kemasan Dasar
Selain mode string dalam baca, latar belakang akan membantu kami membuat instance tipe pembungkus dasar, yang juga dapat kami tampilkan.
var str = string baru ("halo"); var str2 = str.touppercase (); console.log (str2); // "halo:Ini berbeda dari apa yang disimpan dalam variabel ketika latar belakang membantu kita membuat.
var str1 = string baru ("halo"); var str2 = "hello"; typeof str1 // "objek" typeof str2 // "string"Meringkaskan
Berkat jenis pengemasan dasar, lebih nyaman bagi kami untuk mengoperasikan tiga jenis dasar string, boolean, dan angka. Setiap kali ketiga nilai tipe dasar ini dibaca, latar belakang akan membuat instance tipe pembungkus yang sesuai. Contoh ini akan memanggil metode yang ditentukan dan akan dihancurkan setelah menelepon. Siklus hidup yang singkat ini menentukan bahwa kami tidak dapat menambahkan sifat dan metode khusus ke tipe primitif.
Artikel di atas memiliki pemahaman yang mendalam tentang mengapa string dapat dimiliki dalam JavaScript. Ini semua konten yang saya bagikan dengan Anda. Saya harap ini dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.