Rumah >hujung hadapan web >tutorial js >Bagaimanakah Pengangkatan dan Skop Fungsi JavaScript Mempengaruhi Tugasan Pembolehubah dan Dapatkan?

Bagaimanakah Pengangkatan dan Skop Fungsi JavaScript Mempengaruhi Tugasan Pembolehubah dan Dapatkan?

Barbara Streisand
Barbara Streisandasal
2024-12-17 17:08:13347semak imbas

How Does JavaScript Function Hoisting and Scoping Affect Variable Assignment and Retrieval?

Skop dan Pengangkat Fungsi Javascript: Membongkar Mekanik Tersembunyi

Anda telah terjumpa contoh yang membingungkan yang melibatkan skop dan pengangkatan JavaScript. Mari kita mendalami konsep ini untuk mendapatkan pemahaman yang lebih jelas.

Fungsi Mengangkat

Pengisytiharan fungsi mengangkat angkat ke bahagian atas skop kandungannya. Dalam contoh anda:

function b() {
    a = 10;
    return;

    function a() {}
}

Jurubahasa menyusun semula kod ini seperti berikut:

function b() {
    function a() {}
    a = 10;
    return;
}

Ini bermakna pengisytiharan fungsi dalaman a() diletakkan dengan berkesan pada permulaan b() fungsi, walaupun ia muncul kemudian dalam kod.

Pembolehubah Skop

Dalam JavaScript, pembolehubah boleh diskop secara global atau setempat. Pembolehubah global boleh diakses dari mana-mana sahaja dalam program, manakala pembolehubah tempatan dihadkan dalam skop fungsi penentunya.

Kes Penasaran Perisytiharan Fungsi

Dalam kod anda , pengisytiharan fungsi dalaman a() dalam b() ditafsirkan sebagai fungsi segera invocation:

var a = function () {};

Ini secara berkesan mewujudkan pembolehubah tempatan a dalam fungsi b(), yang membayangi pembolehubah global.

Menyatukan Semuanya

Menggabungkan konsep angkat dan skop berubah-ubah, anda boleh memvisualisasikan urutan pelaksanaan sebagai berikut:

  • Pengisytiharan fungsi b() dinaikkan ke bahagian atas skop global.
  • Pernyataan var a = 1 mentakrifkan pembolehubah global.
  • Pengisytiharan fungsi dalaman a() juga dinaikkan dalam fungsi b() dan berkelakuan seperti var a = function () {};.
  • Pernyataan a = 10 menetapkan semula pembolehubah setempat dalam b().
  • Apabila anda memanggil makluman(a), ia mengembalikan pembolehubah global, yang belum diubah suai dan kekal nilai asalnya iaitu 1.

Atas ialah kandungan terperinci Bagaimanakah Pengangkatan dan Skop Fungsi JavaScript Mempengaruhi Tugasan Pembolehubah dan Dapatkan?. 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