recherche

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

javascript - Quel est l'ordre d'exécution de js?

1. Je ne comprends pas l'ordre d'exécution de js. Exécutez le code suivant Lorsque l'alerte est lancée pour la première fois, une erreur ne doit-elle pas être signalée directement ? Pourquoi cette fonction s'affiche-t-elle d'abord, puis 10, puis 3, et enfin une erreur est-elle signalée ? Une erreur ne devrait-elle pas être signalée dès le début ?

alert(a)
a();
var a=3;
function a(){
alert(10)
}
alert(a)
a=6;
a()

phpcn_u1582phpcn_u15822755 Il y a quelques jours707

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

  • ringa_lee

    ringa_lee2017-06-26 11:00:23

    J'ai demandé à mes camarades de classe et découvert pourquoi cela s'est produit. Tout d'abord, nous devons comprendre les concepts
    1 En js, les déclarations de variables et les déclarations de fonctions sont faites à l'avance, et les déclarations de fonctions sont meilleures que les déclarations de variables. Par conséquent, alert(a) avant de déclarer a ne signalera pas d’erreur. Aussi, dans la première alerte, la fonction a apparaît, pas la variable a.
    2. La deuxième alerte, il va sans dire, exécute simplement la fonction a.
    3. La troisième alerte, le résultat est 3, car var a=3; a été exécuté avant de s'exécuter ici. Donc a devient 3. var a=3;。所以a变成了3。
    4.最后报错是因为,执行到a();a进行了两次赋值,第一次是var a=3;,第二次是a=6;4. La dernière erreur a été signalée car a(); a a été attribué deux fois, la première fois était var a=3; et la deuxième fois était a=6;< /code >, mais quoi qu'il en soit, a n'est pas une fonction, donc une erreur est signalée.

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-26 11:00:23

    La première sortie function 是因为作用域提升(hoisting)。
    第二个输出 10 是第二行 a() 的输出。
    第三个输出 3 是倒数第三行 alert(a) 的输出。
    最后一个报错是来自最后一行 a()。因为这时候 a 被重新赋值为数字 6,已经不是 function 了。执行 a() signalera bien sûr une erreur.

    répondre
    0
  • 某草草

    某草草2017-06-26 11:00:23

    La déclaration de variable est-elle promue ? N'oubliez pas les règles suivantes.

    http://zonxin.github.io/post/...

    répondre
    0
  • Annulerrépondre