Pertama sekali, mari bercakap tentang js Apabila anda melihat var a = 1, anda perlu menghuraikannya dalam dua langkah Pertama, naikkan var a ke bahagian atas skop semasa, dan kemudian menghuraikannya ke bawah sehingga a = 1 dan. mula memberikan nilai
Ini adalah masalah pembolehubah dan fungsi yang mempunyai nama yang sama Ringkasnya, susunan penghuraian enjin js adalah seperti berikut 1 Pembolehubah dan pengisytiharan fungsi dinaikkan ke bahagian atas skop semasa → var a ↑ dan `fungsi a(. ) {
Ini kerana pengisytiharan fungsi akan dibuat lebih awal
var a = 1;
function a()
{
console.log(a);
};
a();
1) Pengisytiharan fungsi akan berada di bahagian atas 2) Pengisytiharan pembolehubah juga akan berada di bahagian atas 3) Perisytiharan fungsi akan berada di bahagian atas daripada perisytiharan pembolehubah: (fungsi berada di atas pembolehubah) 4) Pembolehubah dan pernyataan tugasan adalah ditulis bersama. Apabila dihuraikan oleh enjin js, ia akan dibahagikan kepada dua bahagian: pengisytiharan dan tugasan diletakkan di bahagian atas dan tugasan disimpan pada kedudukan asal 5) Pembolehubah yang diisytiharkan tidak akan diisytiharkan berulang kali .
akan bersamaan dengan yang berikut
var a = function ()
{
console.log(a);
};
var a = 1;
a();
Ramai yang menyebut bahawa ia adalah masalah promosi berubah-ubah, tetapi penjelasannya tidak begitu tepat. varPenambahbaikan dilakukan dalam bahagian, dan fungsi dipertingkatkan secara keseluruhan. FYI
Jadi ia sepatutnya kelihatan seperti ini:
var a;
function a ()
{
console.log(a);
};
a = 1;
a();
Function adalah warga pertama javascript, jadi ada promosi fungsi di sini. Pelaksanaan akhir kod di atas mempunyai kesan yang sama seperti
berikutIni akan menyebabkan nama fungsi asal ditimpa.
Pengecam diulang Anda telah mengisytiharkan sebagai pembolehubah
.Pertama sekali, mari bercakap tentang js Apabila anda melihat var a = 1, anda perlu menghuraikannya dalam dua langkah Pertama, naikkan var a ke bahagian atas skop semasa, dan kemudian menghuraikannya ke bawah sehingga a = 1 dan. mula memberikan nilai
Ini adalah masalah pembolehubah dan fungsi yang mempunyai nama yang sama Ringkasnya, susunan penghuraian enjin js adalah seperti berikut
1 Pembolehubah dan pengisytiharan fungsi dinaikkan ke bahagian atas skop semasa → var a ↑ dan `fungsi a(. )
{
}`
2 Kemudian huraikan baki kod `a=1;
a()`,
Ini kerana pengisytiharan fungsi akan dibuat lebih awal
1) Pengisytiharan fungsi akan berada di bahagian atas
akan bersamaan dengan yang berikut2) Pengisytiharan pembolehubah juga akan berada di bahagian atas
3) Perisytiharan fungsi akan berada di bahagian atas daripada perisytiharan pembolehubah: (fungsi berada di atas pembolehubah)
4) Pembolehubah dan pernyataan tugasan adalah ditulis bersama. Apabila dihuraikan oleh enjin js, ia akan dibahagikan kepada dua bahagian: pengisytiharan dan tugasan diletakkan di bahagian atas dan tugasan disimpan pada kedudukan asal 5) Pembolehubah yang diisytiharkan tidak akan diisytiharkan berulang kali .
Ramai yang menyebut bahawa ia adalah masalah promosi berubah-ubah, tetapi penjelasannya tidak begitu tepat.
var
Penambahbaikan dilakukan dalam bahagian, dan fungsi dipertingkatkan secara keseluruhan. FYIJadi ia sepatutnya kelihatan seperti ini: