Rumah >hujung hadapan web >tutorial js >Nilai JavaScript vs rujukan

Nilai JavaScript vs rujukan

PHPz
PHPzasal
2024-07-18 00:40:191193semak imbas

JavaScript values vs reference

Fahami cara pembolehubah disimpan dalam JavaScript: Sebagai nilai atau rujukan

Dalam JavaScript, atau lebih tepat pengaturcaraan, pembolehubah ialah lokasi dalam ingatan komputer yang digunakan untuk menyimpan data. Pembolehubah diisytiharkan (diberi nama, pengecam) dan boleh diberikan nilai serta-merta atau kemudian, bergantung pada bahasa. Pembolehubah ini kemudiannya boleh dirujuk kemudian dalam program dan bukannya secara eksplisit menyatakan nilai yang sama sekali lagi.

Dalam JavaScript, data dihantar dalam bentuk nilai, nilai ini mungkin sama ada nilai primitif atau objek. Sebagai pembangun JavaScript, memahami cara JavaScript mengendalikan data adalah penting untuk mempunyai asas yang kukuh dalam bahasa.

Nilai primitif termasuk:

  • rentetan.
  • nombor.
  • boolean.
  • BigInt.
  • Simbol.
  • Tidak ditentukan.

Nilai objek sebaliknya ialah:

  • tatasusunan.
  • fungsi.
  • objek.

Jenis nilai ini berkelakuan berbeza apabila diedarkan, pertimbangkan coretan di bawah:

var myName = "Fred";
var otherName = myName;
myName = "Ashley";
console.log(nama saya); //Ashley
console.log(otherName); //Fred

Perhatikan bahawa otherName kekal sama walaupun ia kelihatan seperti "salinan" myName. Sebenarnya, apa yang sebenarnya berlaku ialah apabila otherName diberikan myName, ia tidak ditetapkan sebagai salinan rentetan "Fred", sebaliknya, rentetan baru "Fred" telah dicipta. Oleh itu, tiada pautan langsung antara myName dan otherName. Beginilah cara JavaScript menghantar nilai primitif.

Nilai objek dikendalikan secara berbeza, lihat coretan di bawah:

var myObj = {warna: "merah"};
var otherObj = myObj;
myObj.color = "biru";
console.log(myObj.color); //biru
console.log(otherObj.color); //biru

Di sini, dan objek telah dicipta dan diperuntukkan kepada myObj, yang kemudiannya diperuntukkan kepada otherObj, lihat cara sifat warna otherObj dan myObj kedua-duanya ditukar hanya dengan menukar sifat warna myObj. Ini kerana nilai objek dihantar sebagai rujukan. myObj tidak merujuk secara langsung kepada objek, ia menunjuk kepada rujukannya sebaliknya, otherObj kemudiannya diberikan myObj yang merupakan rujukan kepada objek sebenar. Oleh itu, kedua-dua pembolehubah dipautkan kepada objek yang sama kerana ia menunjuk kepada rujukan yang sama, perubahan dalam satu mempengaruhi yang lain.

Inilah sebabnya perbandingan (===) dua objek secara langsung mengembalikan palsu, anda betul-betul membandingkan dua rujukan berbeza. Di sini, myObj === otherObj kembali benar kerana kami membandingkan rujukan yang sama.

Saya harap ini memberi anda perspektif baharu tentang cara JavaScript berfungsi di belakang tabir.

Sehingga itu, kekal bebas pepijat.

Atas ialah kandungan terperinci Nilai JavaScript vs rujukan. 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