Rumah hujung hadapan web tutorial js Hubungan antara pembolehubah JavaScript, pemindahan nilai, pemindahan alamat dan parameter_jquery

Hubungan antara pembolehubah JavaScript, pemindahan nilai, pemindahan alamat dan parameter_jquery

May 16, 2016 pm 03:48 PM
javascript Nilai lulus parameter pembolehubah

Biarkan hasil tuaian kering seketika dahulu:

1.pembolehubah javascript mengandungi dua jenis nilai, satu ialah nilai jenis rujukan dan satu lagi ialah nilai jenis asas. Jenis rujukan termasuk: Tatasusunan, Objek, Fungsi (boleh difahami bahawa jenis bukan asas ialah jenis rujukan);

2. Mekanisme untuk menghantar parameter fungsi adalah untuk menyalin nilai pembolehubah.

Buku itu berkata: "Menyalin nilai di luar fungsi ke parameter di dalam fungsi adalah sama seperti menyalin nilai dari satu pembolehubah ke pembolehubah lain. Pemindahan jenis asas adalah sama seperti penyalinan pembolehubah jenis asas, dan pemindahan jenis rujukan Ia adalah sama seperti salinan pembolehubah jenis rujukan "

.

" Apabila pembolehubah menyalin nilai jenis rujukan, salinan nilai yang disimpan dalam objek pembolehubah juga disalin ke ruang yang diperuntukkan untuk pembolehubah baharu. Perbezaannya ialah salinan nilai sebenarnya adalah penunjuk , dan penunjuk ini menunjuk ke objek yang disimpan dalam timbunan Selepas operasi penyalinan selesai, kedua-dua pembolehubah sebenarnya akan merujuk kepada objek yang sama Oleh itu, menukar salah satu pembolehubah akan mempengaruhi pembolehubah yang lain.

[Nota: Menyalin nilai jenis rujukan ialah satu-satunya cara untuk menghantar alamat]

3. Parameter sebenarnya adalah pembolehubah setempat bagi fungsi tersebut.

------------------------------------------------ --------------------------

Penjelasan konsep asas:

Nilai pindahan: pindahkan nilai A ke B, tukar B, A tidak akan berubah dengan sewajarnya, B menyimpan nilai yang sama dengan A

Alamat pemindahan: pindahkan alamat A ke B, tukar B, dan A akan bertukar pada masa yang sama B hanya menyimpan alamat A (serupa dengan pintasan komputer).


Data dengan jenis nilai disimpan dalam pembolehubah pada tindanan. Iaitu, memperuntukkan ruang memori dalam timbunan dan menyimpan secara langsung nilai yang terkandung, nilai mewakili data itu sendiri. Data jenis nilai mempunyai kelajuan akses yang lebih pantas.

Data dengan jenis rujukan tidak berada pada tindanan, tetapi disimpan dalam timbunan. Iaitu, memperuntukkan ruang memori dalam timbunan tidak secara langsung menyimpan nilai yang terkandung, tetapi menunjuk kepada nilai yang akan disimpan, dan nilainya mewakili alamat yang ditunjuk. Apabila mengakses data dengan jenis rujukan, anda perlu menyemak kandungan pembolehubah pada tindanan, yang merujuk kepada data sebenar dalam timbunan. Data jenis rujukan mempunyai saiz storan yang lebih besar dan kelajuan akses yang lebih rendah daripada data jenis nilai.

------------------------------------------------ --------------------------

Berikut ialah tiga soalan.

[Soalan 1]:

Mengapa bahagian luar tidak terganggu selepas fungsi change(a) dilaksanakan?

1

2

3

4

5

6

7

8

9

10

<script>

var a = [1, 2, 3];

function change(a) {

 console.log(a);//[1,2,3]

 a = 2;   //传值

 console.log(a);//2

}

change(a);

console.log(a);  //[1,2,3]

</script>

Salin selepas log masuk
Jawapan kepada soalan 1: Oleh kerana proses pelaksanaan change(a) adalah seperti ini, selepas objek a (array) mula-mula dihantar ke dalam perubahan, ia disalin ke parameter a perubahan. Kemudian a=2 ialah pernyataan tugasan dan menjadi nilai pas. Pada masa ini, a=2 ialah jenis nilai dan tidak melibatkan isu alamat rujukan. Jadi ia tidak menjejaskan luaran a.

[Soalan 2]:

Mengapa bahagian luar terganggu selepas fungsi change(a) dilaksanakan?

1

2

3

4

5

6

7

8

<script>

 var a = [1, 2, 3];

 function change() {

  a = 2;//传值

 }

 change();

 console.log(a);  //2

</script>

Salin selepas log masuk
Jawapan kepada soalan 2: Apabila melaksanakan change(), fungsi mencari rantai skop dalam persekitaran pelaksanaannya sendiri Objek pengaktifan tidak mengandungi pembolehubah a, jadi ia mencari ke atas sepanjang rantai skop untuk mencari Pelaksanaan global. persekitaran, pembolehubah a ditemui, jadi pada masa ini a dalaman fungsi dan luaran a adalah alamat yang sama dalam ingatan Sememangnya, jika dalaman a fungsi berubah, yang luaran juga akan berubah.

Analisis: Perbezaan antara soalan 2 dan soalan 1 ialah soalan 2 tidak memperkenalkan parameter, jadi ia tidak melibatkan penyalinan pembolehubah.

[Soalan 3]:

Mengapa bahagian luar terganggu selepas fungsi change(a) dilaksanakan?

1

2

3

4

5

6

7

8

<script>

 var a = [1, 2, 3];

 function change(b) {

  b[0] = 2;

 }

 change(a);

 console.log(a);  //[2,2,3]

</script>

Salin selepas log masuk
Jawapan kepada soalan 3: Ini hampir sama dengan soalan 1. Satu-satunya perbezaan ialah a=2 digantikan dengan b[0]=2 Saya keliru pada mulanya. Parameter b sepatutnya merupakan nilai yang disalin, bagaimanakah ia boleh menjejaskan bahagian luar a?

Sesungguhnya, apabila fungsi perubahan dilaksanakan, parameter b ialah nilai yang disalin bagi a. Kerana a ialah jenis rujukan, di dalam fungsi, b dan a akses objek alamat melalui rujukan. Kejadian b[0]=2 tidak menjejaskan fakta bahawa b dan a merujuk kepada objek yang sama di dalam fungsi.

[Soalan 4]:

Mengapa bahagian luar tidak terganggu selepas fungsi change(a) dilaksanakan?

1

2

3

4

5

6

7

8

var a = [1, 2, 3];

function change(b) {

 console.log(b);//[1,2,3]

 b=2;

 b[0] = 2;

}

change(a);

console.log(a);  //[1,2,3]

Salin selepas log masuk
Jawapan kepada soalan 4: Proses pelaksanaan perubahan(b) adalah seperti berikut: objek a dihantar ke dalam fungsi perubahan, dan nilai serta alamat disalin ke b. Ayat b=2, b menjadi jenis nilai pada masa ini, dan tidak melibatkan isu rujukan alamat Ayat b[0]=2 sebenarnya tidak bermakna selepas itu, kerana b bukan lagi tatasusunan pada masa ini. dan secara semula jadi ia tidak mempunyai kaedah Pengindeksan seperti b[0]. Oleh itu, hubungan rujukan alamat antara b dan a sebenarnya hilang selepas b=2. Pada masa ini, a luaran masih [1,2,3];

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

senarai penilaian parameter i9-12900H senarai penilaian parameter i9-12900H Feb 23, 2024 am 09:25 AM

i9-12900H ialah pemproses 14-teras Seni bina dan teknologi yang digunakan semuanya baharu, dan rangkaiannya juga sangat tinggi. Kerja keseluruhannya sangat baik, dan beberapa parameter telah dipertingkatkan terutamanya dan boleh membawa pengalaman yang sangat baik . Semakan penilaian parameter i9-12900H: 1. i9-12900H ialah pemproses 14 teras, yang mengguna pakai seni bina q1 dan teknologi proses 24576kb, dan telah dinaik taraf kepada 20 utas. 2. Kekerapan CPU maksimum ialah 1.80 ghz, yang bergantung terutamanya pada beban kerja. 3. Berbanding dengan harga, ia sangat sesuai Nisbah harga-prestasi adalah sangat baik, dan ia sangat sesuai untuk sesetengah rakan kongsi yang memerlukan penggunaan biasa. penilaian parameter i9-12900H dan markah larian prestasi

Pemeriksaan keselamatan jenis parameter fungsi C++ Pemeriksaan keselamatan jenis parameter fungsi C++ Apr 19, 2024 pm 12:00 PM

Pemeriksaan keselamatan jenis parameter C++ memastikan bahawa fungsi hanya menerima nilai jenis yang dijangkakan melalui semakan masa kompilasi, semakan masa jalan dan penegasan statik, menghalang tingkah laku yang tidak dijangka dan ranap program: Pemeriksaan jenis masa kompilasi: Pengkompil menyemak keserasian jenis. Semakan jenis masa jalan: Gunakan dynamic_cast untuk menyemak keserasian jenis dan buang pengecualian jika tiada padanan. Penegasan statik: Tegaskan keadaan jenis pada masa penyusunan.

Apakah pembolehubah contoh dalam Java Apakah pembolehubah contoh dalam Java Feb 19, 2024 pm 07:55 PM

Pembolehubah contoh dalam Java merujuk kepada pembolehubah yang ditakrifkan dalam kelas, bukan dalam kaedah atau pembina. Pembolehubah contoh juga dipanggil pembolehubah ahli Setiap contoh kelas mempunyai salinan pembolehubah contoh sendiri. Pembolehubah contoh dimulakan semasa penciptaan objek, dan keadaannya disimpan dan dikekalkan sepanjang hayat objek. Takrif pembolehubah contoh biasanya diletakkan di bahagian atas kelas dan boleh diisytiharkan dengan mana-mana pengubah suai akses, yang boleh menjadi umum, peribadi, dilindungi atau pengubah akses lalai. Ia bergantung kepada apa yang kita mahu ini

Bagaimana untuk mendapatkan pembolehubah daripada kaedah PHP menggunakan Ajax? Bagaimana untuk mendapatkan pembolehubah daripada kaedah PHP menggunakan Ajax? Mar 09, 2024 pm 05:36 PM

Menggunakan Ajax untuk mendapatkan pembolehubah daripada kaedah PHP adalah senario biasa dalam pembangunan web Melalui Ajax, halaman boleh diperoleh secara dinamik tanpa menyegarkan data. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Ajax untuk mendapatkan pembolehubah daripada kaedah PHP, dan memberikan contoh kod khusus. Pertama, kita perlu menulis fail PHP untuk mengendalikan permintaan Ajax dan mengembalikan pembolehubah yang diperlukan. Berikut ialah kod contoh untuk fail PHP mudah getData.php:

Peta minda sintaks Python: pemahaman mendalam tentang struktur kod Peta minda sintaks Python: pemahaman mendalam tentang struktur kod Feb 21, 2024 am 09:00 AM

Python digunakan secara meluas dalam pelbagai bidang dengan sintaksnya yang ringkas dan mudah dibaca. Menguasai struktur asas sintaks Python adalah penting, kedua-duanya untuk meningkatkan kecekapan pengaturcaraan dan untuk mendapatkan pemahaman yang mendalam tentang cara kod tersebut berfungsi. Untuk tujuan ini, artikel ini menyediakan peta minda komprehensif yang memperincikan pelbagai aspek sintaks Python. Pembolehubah dan Jenis Data Pembolehubah ialah bekas yang digunakan untuk menyimpan data dalam Python. Peta minda menunjukkan jenis data Python biasa, termasuk integer, nombor titik terapung, rentetan, nilai Boolean dan senarai. Setiap jenis data mempunyai ciri dan kaedah operasinya sendiri. Operator Operator digunakan untuk melaksanakan pelbagai operasi pada jenis data. Peta minda merangkumi jenis operator yang berbeza dalam Python, seperti operator aritmetik, nisbah

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Pemahaman mendalam tentang const dalam bahasa C Pemahaman mendalam tentang const dalam bahasa C Feb 18, 2024 pm 12:56 PM

Penerangan terperinci dan contoh kod const dalam C Dalam bahasa C, kata kunci const digunakan untuk menentukan pemalar, yang bermaksud bahawa nilai pembolehubah tidak boleh diubah suai semasa pelaksanaan program. Kata kunci const boleh digunakan untuk mengubah suai pembolehubah, parameter fungsi dan nilai pulangan fungsi. Artikel ini akan memberikan analisis terperinci tentang penggunaan kata kunci const dalam bahasa C dan memberikan contoh kod khusus. pembolehubah diubah suai const Apabila const digunakan untuk mengubah suai pembolehubah, ini bermakna pembolehubah itu ialah pembolehubah baca sahaja dan tidak boleh diubah suai setelah ia diberikan nilai. Contohnya: berterusan

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Jan 05, 2024 pm 01:37 PM

Pengenalan kepada kaedah mendapatkan kod status HTTP dalam JavaScript: Dalam pembangunan bahagian hadapan, kita selalunya perlu berurusan dengan interaksi dengan antara muka bahagian belakang, dan kod status HTTP adalah bahagian yang sangat penting daripadanya. Memahami dan mendapatkan kod status HTTP membantu kami mengendalikan data yang dikembalikan oleh antara muka dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan memberikan contoh kod khusus. 1. Apakah kod status HTTP bermakna kod status HTTP apabila penyemak imbas memulakan permintaan kepada pelayan, perkhidmatan tersebut

See all articles