Rumah  >  Soal Jawab  >  teks badan

kata kunci var dan fungsi

var a = 1;

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

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

仅有的幸福仅有的幸福2711 hari yang lalu457

membalas semua(5)saya akan balas

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:31:08

    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.

    balas
    0
  • PHP中文网

    PHP中文网2017-05-19 10:31:08

    Pengecam diulang Anda telah mengisytiharkan sebagai pembolehubah

    .

    balas
    0
  • 高洛峰

    高洛峰2017-05-19 10:31:08

    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()`,

    balas
    0
  • 怪我咯

    怪我咯2017-05-19 10:31:08

    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~

    balas
    0
  • 漂亮男人

    漂亮男人2017-05-19 10:31:08

    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();

    balas
    0
  • Batalbalas