cari

Rumah  >  Soal Jawab  >  teks badan

javascript - isu skop pembolehubah

var name = 'World!';
(function () {
    if (typeof name === 'undefined') {
        var name = 'Jack';
        console.log('Goodbye ' + name);
    } else {
        console.log('Hello ' + name);
    }
})();

Maafkan saya, nama ialah pembolehubah global Mengapa ia tidak ditentukan dalam fungsi pelaksanaan segera

伊谢尔伦伊谢尔伦2745 hari yang lalu407

membalas semua(2)saya akan balas

  • 怪我咯

    怪我咯2017-05-19 10:09:17

    Kerana terdapat juga pembolehubah nama dalam fungsi laksana kendiri anda Nama pembolehubah dalam fungsi laksana sendiri diisytiharkan dengan var dan akan dinaikkan ke bahagian atas skop fungsi laksana sendiri
    Iaitu, kod anda. boleh dilihat secara kasar sebagai dilaksanakan seperti ini

    (function () {
    //最新执行
    var name
    //然后执行if
    if (typeof name === 'undefined') {
        //然后在这里给name赋值
        name = 'Jack';
        console.log('Goodbye ' + name);
    } else {
        console.log('Hello ' + name);
    }
    })()

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:09:17

    Perhatikan promosi berubah-ubah, kod anda akan menjadi seperti berikut selepas menghuraikan

    var name ;
    name = 'World!';
    (function () {
        var name;
        if (typeof name === 'undefined') {
            name = 'Jack';
            console.log('Goodbye ' + name);
        } else {
            console.log('Hello ' + name);
        }
    })();

    balas
    0
  • Batalbalas