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

javascript - Question sur la raison pour laquelle la valeur de i est égale à 5

(function(){
    for(var i = 0; i < 5; i++) {}
    console.log(i) // i = 5
})()

Première question : à quelle partie de la connaissance js cela appartient-il ?
Deuxième question : Expliquez en termes simples pourquoi i est égal à 5 ?
0o0

欧阳克欧阳克2686 Il y a quelques jours881

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

  • PHP中文网

    PHP中文网2017-06-12 09:31:37

    Ce problème est-il une fermeture ? Je ne pense pas que ce soit une fermeture, et il n'y a pas d'imbrication de fonctions C'est un problème de variables locales de fonction et de fonctions anonymes.

    .

    Créer une fonction anonyme et l'exécuter immédiatement n'implique pas de fermetures, juste la fin de la boucle, i 的值变成 5 退出循环, console.log(i)打印当前的 i, qui est 5.

    .

    Cela équivaut à :

    var test = function() {
        for(var i = 0; i < 5; i++) {}
        console.log(i) // i = 5
    }
    test();

    répondre
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-06-12 09:31:37

    Ceci n'est pas une fermeture, c'est juste une valeur imprimée après la vitesse de la boucle for

    répondre
    0
  • 怪我咯

    怪我咯2017-06-12 09:31:37

    Il s'agit d'un problème causé par le fait que js n'a pas de portée au niveau du bloc, uniquement une portée de fonction. . . Ju peut directement tirer la fermeture. . . Je l'accepte. . .

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-12 09:31:37

    Il n'existe pas de portée au niveau du bloc en JavaScript, donc les variables à l'intérieur de la boucle for {} et de l'instruction if {} sont accessibles de l'extérieur.

    La portée est divisée en portée mondiale et portée locale

    La portée globale est intégrée par le système pour vous lorsque vous créez un document.
    La portée locale est obtenue en créant une fonction.

    répondre
    0
  • 怪我咯

    怪我咯2017-06-12 09:31:37

    • Cela apparaît généralement dans le problème de l'examen des fermetures

    • i + 1 a bouclé 5 fois, donc i est 5

    répondre
    0
  • ringa_lee

    ringa_lee2017-06-12 09:31:37

    1. Vous devriez vouloir en savoir plus sur les fermetures en js

    2. Étant donné que l'exécution de la boucle for est terminée lorsque console.log est exécuté, i est naturellement égal à 5

    répondre
    0
  • 怪我咯

    怪我咯2017-06-12 09:31:37

    Jetons un coup d'œil aux fermetures combinées avec des minuteries ou à la liaison d'événements

    répondre
    0
  • ringa_lee

    ringa_lee2017-06-12 09:31:37

    Fermetures en js,

    répondre
    0
  • Annulerrépondre