Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa rentetan tidak boleh diubah dalam javascript?

Mengapa rentetan tidak boleh diubah dalam javascript?

青灯夜游
青灯夜游asal
2022-02-16 14:47:453441semak imbas

Dalam JavaScript, nilai rentetan tidak boleh diubah, yang bermaksud bahawa setelah rentetan dibuat, ia tidak boleh diubah sebab: rentetan itu sendiri ialah jenis asas yang dirangkumkan oleh bahasa dan jenis asasnya ialah Objek yang kandungannya tidak boleh diubah sejak penciptaannya, jadi rentetan kekal tidak berubah.

Mengapa rentetan tidak boleh diubah dalam javascript?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.

Dalam JavaScript, nilai rentetan tidak boleh diubah, yang bermaksud apabila rentetan itu dibuat, ia tidak boleh diubah.

Sebagai contoh, kod berikut:

var myStr = "Bob";
myStr[0] = "J";

tidak akan menukar nilai pembolehubah myStr kepada "Job" kerana pembolehubah myStr tidak boleh berubah.

Perhatikan bahawa ini tidak bermakna myStr tidak boleh ditukar, cuma aksara individu rentetan literal tidak boleh ditukar.

Satu-satunya cara untuk menukar myStr ialah menetapkan semula nilai padanya, seperti ini:

var myStr = "Bob";
myStr = "Job";

Mengapa rentetan tidak boleh diubah dalam js?

Malah, rentetan itu sendiri adalah jenis asas yang dirangkumkan oleh bahasa (output melalui pembina String sistem sendiri Lapisan bawah masih merupakan objek, bukan jenis data yang mudah). Kandungan objek ini tidak boleh diubah sejak ia dicipta, jadi rentetan kekal tidak berubah. Operasi seperti

hanya akan menjana objek rentetan baharu dan objek rentetan asal tidak akan berubah. Jika objek rentetan tidak lagi dirujuk, ia akan dikitar semula oleh GC.

[Cadangan berkaitan: tutorial pembelajaran javascript]

Atas ialah kandungan terperinci Mengapa rentetan tidak boleh diubah dalam javascript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn