kata kunci var dan fungsi
仅有的幸福
仅有的幸福 2017-05-19 10:29:08
0
5
452

var a = 1;

function a()
{
    console.log(a);
};
a();

Barisan kod JS ini akan melaporkan ralat semasa dijalankan, tetapi apakah sebabnya? Minta Allah perjelaskan

仅有的幸福
仅有的幸福

membalas semua(5)
过去多啦不再A梦

Function adalah warga pertama javascript, jadi ada promosi fungsi di sini. Pelaksanaan akhir kod di atas mempunyai kesan yang sama seperti

berikut
function a()
{
    console.log(a);
};
var a = 1;
a();

Ini akan menyebabkan nama fungsi asal ditimpa.

Ty80

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(. )
{

console.log(a);

}`
2 Kemudian huraikan baki kod `a=1;
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();
Semoga ia membantu anda~

漂亮男人

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();
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!