Rumah > hujung hadapan web > tutorial js > Mengapa Kod JavaScript Ini Mengembalikan '1'?

Mengapa Kod JavaScript Ini Mengembalikan '1'?

Susan Sarandon
Lepaskan: 2024-12-22 08:34:10
asal
985 orang telah melayarinya

Why Does This JavaScript Code Return

Skop dan Pengangkat Fungsi Javascript: Membongkar Misteri

Dalam bidang JavaScript, memahami skop dan pengangkatan fungsi adalah penting untuk membongkar kod kompleks . Mari kita teliti contoh yang mencetuskan persoalan, "Mengapa kod ini mengembalikan '1'?"

var a = 1;

function b() {
    a = 10;
    return;

    function a() {}
}
b();
alert(a);
Salin selepas log masuk

Fungsi Pengangkat: Membongkar Rahsia

Fungsi pengangkat ialah mekanisme ingin tahu yang melancarkan pengisytiharan fungsi ke bahagian atas skop mereka. Dalam contoh kita, fungsi b dinaikkan ke skop global, mengubahnya menjadi:

function b() {
    function a() {}
    a = 10;
    return;
}
Salin selepas log masuk

Skop Pembolehubah: Terhad kepada Skop

Sekarang, mari kita keluarkan cahaya pada skop berubah-ubah. Dalam kod kami, a diisytiharkan dengan var dalam skop global dan kemudian ditakrifkan semula dalam b. Apabila pembolehubah diisytiharkan di dalam fungsi, ia hanya boleh diakses dalam skop fungsi itu.

Dalam kes kami, pembolehubah a yang ditakrifkan semula di dalam b adalah setempat kepada fungsi tersebut. Oleh itu, global a asal kekal tidak terjejas.

Tingkah Laku Yang Salah Faham: Menyelam Lebih Dalam

Pada pandangan pertama, fungsi pengisytiharan a() {} mungkin kelihatan seperti pengisytiharan fungsi. Walau bagaimanapun, ia sebenarnya bersamaan dengan var a = function() {};, mentakrifkan objek seperti fungsi. Ini bermakna fungsi a() {} tidak mencipta fungsi bernama a sebaliknya menetapkan semula pembolehubah sedia ada dengan fungsi baharu.

Menyatukan Pengangkatan dan Skop

Menggabungkan fungsi angkat dan skop berubah, kod kami pada asasnya melakukan perkara berikut:

  1. Pengangkat b ke global skop.
  2. Mencipta pembolehubah setempat a dalam b.
  3. Menetapkan semula global a kepada 10.
  4. Memberi amaran kepada global a, yang mempunyai nilai 1.

Oleh itu, amaran memaparkan "1" kerana a yang digunakan dalam b ialah pembolehubah tempatan yang tidak menjejaskan global a.

Atas ialah kandungan terperinci Mengapa Kod JavaScript Ini Mengembalikan '1'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan