Maison  >  Questions et réponses  >  le corps du texte

var et mots-clés de fonction

var a = 1;

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

Ces lignes de code JS signaleront une erreur lors de l'exécution, mais quelle en est la raison ? Demandez à Dieu de vous expliquer

仅有的幸福仅有的幸福2711 Il y a quelques jours455

répondre à tous(5)je répondrai

  • 过去多啦不再A梦

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

    Function est le premier citoyen de JavaScript, il y a donc une promotion de fonction ici. L'implémentation finale du code ci-dessus a le même effet que ce qui suit

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

    Cela entraînera l'écrasement du nom de la fonction d'origine.

    répondre
    0
  • PHP中文网

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

    L'identifiant est répété. Vous avez déclaré a comme variable

    répondre
    0
  • 高洛峰

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

    Tout d'abord, parlons de js. Lorsque vous voyez var a = 1, vous devez l'analyser en deux étapes. Tout d'abord, élever var a au sommet de la portée actuelle, puis l'analyser vers le bas jusqu'à ce que a = 1 et commencez à attribuer des valeurs.

    C'est le problème des variables et des fonctions ayant le même nom. En termes simples, l'ordre d'analyse du moteur js est le suivant

    1 Les déclarations de variables et de fonctions sont promues en haut de la portée actuelle → var a ↑ et `function a(. )
    {

    console.log(a);

    }`

    2. Analysez ensuite le code restant `a=1;
    a()`,

    répondre
    0
  • 怪我咯

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

    C'est parce que la déclaration de fonction sera anticipée

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

    1) La déclaration de fonction sera en haut
    2) La déclaration de variable sera également en haut
    3) La déclaration de fonction sera en haut que la déclaration de variable : (la fonction est au-dessus de la variable)
    4) Les variables et les instructions d'affectation sont écrites ensemble. Une fois analysées par le moteur js, elles seront divisées en deux parties : la déclaration et l'affectation. La déclaration est placée en haut et l'affectation reste à la position d'origine. 5) Les variables déclarées ne seront pas déclarées à plusieurs reprises.

    sera équivalent à ce qui suit

    var a = function ()
    {
        console.log(a);
    };
    var a = 1;
    
    a();
    J'espère que cela vous aidera~

    répondre
    0
  • 漂亮男人

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

    Beaucoup de gens ont mentionné qu'il s'agissait d'un problème de promotion variable, mais l'explication n'est pas tout à fait correcte. varL'amélioration se fait par parties et les fonctions sont améliorées dans leur ensemble. Pour information

    Ça devrait donc ressembler à ceci :

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

    répondre
    0
  • Annulerrépondre