JavaScript ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan bahagian hadapan web. Sebagai bahasa dinamik, JavaScript menyediakan konsep penunjuk, yang membolehkannya mengendalikan jenis data dan struktur data yang lebih kompleks. Artikel ini akan menumpukan pada menerangkan penggunaan penunjuk JavaScript dan aplikasinya dalam proses pengaturcaraan.
Apakah penunjuk?
Penunjuk ialah konsep pengaturcaraan yang sangat biasa. Ia adalah pembolehubah yang menyimpan alamat memori dan boleh digunakan untuk menunjuk ke alamat pembolehubah lain. Nilai yang disimpan dalam pembolehubah penunjuk ialah alamat memori, bukan nilai data mentah. Apabila anda menggunakan penunjuk, anda boleh mengakses nilai pembolehubah dengan merujuk alamatnya. Penunjuk sering digunakan untuk menangani struktur data dinamik, seperti senarai terpaut dan pepohon.
Pengenalan kepada penggunaan penuding JavaScript
Dalam JavaScript, kita boleh menggunakan beberapa sintaks khas untuk mencipta penunjuk. Sebagai contoh, anda boleh menggunakan pengendali rujukan &
dan pengendali nyahrujukan *
.
Pengendali rujukan &
membolehkan kami mendapatkan alamat pembolehubah dalam ingatan. Contohnya:
let num = 42; let addressOfNum = # // 获取num在内存中的地址 console.log(addressOfNum); // 输出42
Pengendali dereference *
membolehkan kami mengakses nilai yang disimpan dalam pembolehubah penunjuk. Contohnya:
let num = 42; let numPointer = # // 获取num在内存中的地址,并将其存储在指针变量numPointer中 console.log(*numPointer); // 输出42
Terdapat beberapa kegunaan lain penunjuk dalam JavaScript. Mengambil tatasusunan sebagai contoh, anda boleh menggunakan penunjuk untuk mengakses elemen dalam tatasusunan:
let arr = [1, 2, 3, 4, 5]; let arrPointer = &arr; // 获取数组在内存中的地址,并将其存储在指针变量arrPointer中 console.log(*arrPointer); // 输出[1, 2, 3, 4, 5] console.log((*arrPointer)[0]); // 输出1
Selain itu, dalam JavaScript, kami juga boleh menggunakan penunjuk untuk mengakses atribut dalam objek:
let obj = {name: "Tom", age: 20}; let objPointer = &obj; // 获取对象在内存中的地址,并将其存储在指针变量objPointer中 console.log((*objPointer).name); // 输出Tom console.log((*objPointer).age); // 输出20
Rujukan jenis Penunjuk
Jenis rujukan dalam JavaScript, seperti objek dan tatasusunan, disimpan dalam memori secara berbeza daripada jenis primitif. Apabila anda mencipta jenis rujukan dalam JavaScript, anda sebenarnya mencipta objek atau tatasusunan dalam ingatan dan mengembalikan alamatnya dalam ingatan. Oleh itu, dalam JavaScript, jenis rujukan itu sendiri adalah jenis penunjuk.
Sebagai contoh, apabila anda mentakrifkan tatasusunan, JavaScript mencipta objek untuk tatasusunan dalam ingatan dan mengembalikan alamat tatasusunan kepada pembolehubah. Anda kemudian boleh menggunakan pembolehubah untuk mengakses elemen dalam tatasusunan itu. Dalam kes ini, pembolehubah sebenarnya adalah alamat tatasusunan dalam ingatan.
let arr = [1, 2, 3, 4, 5]; console.log(arr); // 输出[1, 2, 3, 4, 5]
Memandangkan jenis rujukan dalam JavaScript ialah jenis penuding, anda boleh terus menetapkan pembolehubah jenis rujukan kepada pembolehubah lain, yang akan menjadikan dua pembolehubah menghala ke objek atau tatasusunan yang sama. Contohnya:
let arr1 = [1, 2, 3]; let arr2 = arr1; // 将arr2指向arr1所指向的内存地址 arr2.push(4); // 改变arr2也会改变arr1 console.log(arr1); // 输出[1, 2, 3, 4] console.log(arr2); // 输出[1, 2, 3, 4]
Pengurusan penunjuk dan memori dalam JavaScript
JavaScript ialah bahasa peringkat tinggi dan kerja pengurusan memorinya diselesaikan secara automatik oleh persekitaran masa jalan. Dalam JavaScript, anda tidak perlu risau tentang peruntukan dan pelepasan memori, kerana tugasan ini dilakukan oleh enjin JavaScript.
Dalam JavaScript, jika objek atau tatasusunan tidak lagi digunakan, memorinya akan dituntut semula secara automatik. Proses ini dipanggil kutipan sampah. Untuk memahami cara pengumpulan sampah berfungsi, anda perlu mengetahui beberapa prinsip asas pengurusan ingatan.
JavaScript menggunakan pengiraan rujukan untuk menjejak bilangan kali objek dirujuk dalam ingatan. Apabila objek dicipta, kiraan rujukannya dimulakan kepada 1. Setiap kali objek dirujuk oleh pembolehubah lain, kiraan rujukan objek ditambah dengan satu. Begitu juga, apabila pembolehubah tidak lagi merujuk objek, kiraan rujukan objek dikurangkan dengan satu. Apabila kiraan rujukan sesuatu objek ialah 0, ia bermakna objek itu tidak mempunyai rujukan dan boleh dikitar semula.
Kaedah kutipan sampah ini sangat cekap, tetapi ia mempunyai kelemahan. Sebagai contoh, jika dua objek merujuk satu sama lain, kiraan rujukannya tidak akan mencapai 0, iaitu ingatan mereka tidak akan dituntut semula. Untuk mengelakkan ini, enjin JavaScript moden menggunakan algoritma pengumpulan sampah yang lebih canggih, seperti tanda dan sapuan dan penandaan tambahan.
Penunjuk dan struktur data dalam JavaScript
Penunjuk dalam JavaScript, seperti jenis data primitif, adalah konsep yang sangat penting dalam pengaturcaraan. Menggunakan penunjuk membolehkan anda bekerja dengan struktur data yang lebih kompleks seperti senarai terpaut dan pepohon, yang sering digunakan dalam pembangunan bahagian hadapan moden. Penunjuk juga boleh digunakan untuk peruntukan memori dinamik dan deallocation, yang merupakan topik yang sangat penting.
Apabila menggunakan penunjuk, anda perlu memberi perhatian kepada keselamatan ingatan. Memandangkan JavaScript ialah bahasa dinamik, sukar untuk menyediakan keselamatan memori yang sama seperti bahasa statik lain. Jika digunakan secara tidak betul, penunjuk terdedah kepada masalah seperti pengecualian penuding nol. Oleh itu, anda mesti sangat berhati-hati dan mengikuti amalan pengaturcaraan yang baik apabila menggunakan penunjuk.
Kesimpulan
Menggunakan penunjuk dalam JavaScript memerlukan penguasaan beberapa konsep asas dan sintaks. Ia boleh digunakan untuk mengendalikan jenis data yang kompleks dan struktur data seperti senarai terpaut dan pepohon. Menggunakan penunjuk memerlukan perhatian kepada keselamatan memori dan amalan pengaturcaraan yang baik. Penunjuk dalam JavaScript ialah konsep yang sangat penting dan berguna yang sangat penting untuk menulis kod JavaScript berprestasi tinggi dan berkualiti tinggi.
Atas ialah kandungan terperinci Penggunaan penunjuk JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!