javascript - problème de portée variable
伊谢尔伦
伊谢尔伦 2017-05-19 10:07:17
0
2
420
var name = 'World!';
(function () {
    if (typeof name === 'undefined') {
        var name = 'Jack';
        console.log('Goodbye ' + name);
    } else {
        console.log('Hello ' + name);
    }
})();

Excusez-moi, le nom est une variable globale Pourquoi n'est-il pas défini dans la fonction d'exécution immédiate

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

répondre à tous(2)
刘奇

Parce qu'il existe également une variable de nom dans votre fonction auto-exécutable. Le nom de la variable dans la fonction auto-exécutable est déclaré avec var et sera promu en haut de la portée de la fonction auto-exécutable
C'est-à-dire votre code. peut être grossièrement considéré comme exécuté comme ceci

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

Faites attention à la promotion variable, votre code deviendra comme suit après analyse

var name ;
name = 'World!';
(function () {
    var name;
    if (typeof name === 'undefined') {
        name = 'Jack';
        console.log('Goodbye ' + name);
    } else {
        console.log('Hello ' + name);
    }
})();
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal