2009-12-20 7 views
4

Le code (par exemple, les fonctions) s'exécute-t-il en même temps ou suit-il l'ordre dans lequel il a été écrit (de haut en bas)? Je sais que cet ordre est important en HTML, qu'en est-il de JavaScript? Par exemple, s'il y a deux appels de fonction l'un après l'autre, seront-ils exécutés simultanément ou l'un après l'autre même s'ils n'ont rien à faire l'un avec l'autre?Est-ce que JavaScript s'exécute de haut en bas?

+1

C'est important en CSS. Le résultat dépendra de l'ordre des règles. –

+1

Pourquoi est-ce un wiki communautaire? – James

Répondre

5

Il peut sembler que si les fonctions Javascript exécutent dans un ordre imprévisible parce que le modèle de Javascript dans un navigateur est évènementielle . Cela signifie qu'un programme JavaScript attache généralement des gestionnaires d'événements aux éléments DOM et que ceux-ci sont déclenchés par des actions de l'utilisateur telles que le fait de cliquer ou de déplacer le pointeur sur un élément. Cependant, le script qui configure les gestionnaires d'événements s'exécute comme un programme impératif structuré traditionnel.

Une autre complication est que les applications Javascript modernes font un usage intensif des fonctions asynchrones. Cela signifie qu'un appel de fonction peut retourner rapidement mais aura déclenché une action qui se terminera plus tard. Un exemple évident est l'envoi de requêtes à un serveur dans des applications dites AJAX. Généralement, la fonction de demande reçoit une fonction de rappel qui est appelée lorsque la requête est terminée. Cependant, le programme Javascript passera à l'instruction suivante sans attendre la fin de la requête. Cela peut être quelque peu déroutant si vous ne réfléchissez pas assez sur ce que votre programme est en train de faire.

Un autre exemple que vous pourriez parfois rencontrer est le lancement d'animations dans jQuery. Ceux-ci fonctionnent également de manière asynchrone et vous pouvez passer une fonction de rappel qui s'exécute après la fin de l'animation. Encore une fois, cela peut surprendre parfois si vous attendez que l'instruction suivante soit exécutée après la fin de l'animation plutôt qu'après.

+0

Bonne explication ... Alors ... il ne suit pas une commande – alexchenco

1

Il se produit dans l'ordre dans lequel il a été écrit (avec diverses exceptions). Plus précisément, il est un prototype orienté objet structuré impératif langage de script basé :)

Voir Imperative Programming

Questions connexes