QCMUP.COM

Liste QCM JavaScript Corrigé – Partie 9

Entraînez-vous avec des questions corrigées, progressez étape par étape, puis consolidez vos notions grâce aux définitions et explications.

30 questions Réponses expliquées Réviser → Pratiquer
Liste QCM JavaScript Corrigé – Partie 9 – JavaScript

L’asynchronisme est un pilier fondamental du développement JavaScript moderne, en particulier pour les applications web interactives et performantes.

Il permet de gérer efficacement des opérations longues, comme le chargement de données ou les échanges avec un serveur, sans bloquer l’exécution du reste du programme.

Cette approche est devenue indispensable dans un contexte où l’expérience utilisateur doit rester fluide et réactive, même lorsque plusieurs traitements sont en cours.

Les notions liées aux promesses, aux fonctions asynchrones et à la gestion du temps sont aujourd’hui incontournables pour tout développeur souhaitant concevoir des interfaces dynamiques et robustes.

Comprendre comment JavaScript orchestre ces mécanismes en interne aide à écrire un code plus clair, plus fiable et mieux structuré.

Les QCM proposés s’inscrivent dans cette logique d’apprentissage progressif, en ciblant les concepts essentiels qui permettent de maîtriser l’exécution asynchrone et d’éviter les erreurs courantes rencontrées en pratique.

L’asynchronisme est un pilier fondamental du développement JavaScript moderne, en particulier pour les applications web interactives et performantes.

Il permet de gérer efficacement des opérations longues, comme le chargement de données ou les échanges avec un serveur, sans bloquer l’exécution du reste du programme.

Cette approche est devenue indispensable dans un contexte où l’expérience utilisateur doit rester fluide et réactive, même lorsque plusieurs traitements sont en cours.

Les notions liées aux promesses, aux fonctions asynchrones et à la gestion du temps sont aujourd’hui incontournables pour tout développeur souhaitant concevoir des interfaces dynamiques et robustes.

Comprendre comment JavaScript orchestre ces mécanismes en interne aide à écrire un code plus clair, plus fiable et mieux structuré.

Les QCM proposés s’inscrivent dans cette logique d’apprentissage progressif, en ciblant les concepts essentiels qui permettent de maîtriser l’exécution asynchrone et d’éviter les erreurs courantes rencontrées en pratique.

QCM 1 Corrigé

Que signifie le terme 'asynchrone' en JavaScript ?

A. Le code s'exécute ligne par ligne sans jamais s'arrêter
B. Le code peut lancer une tâche et continuer l'exécution du reste en attendant le résultat
C. Toutes les fonctions sont exécutées exactement en même temps
D. Le code ne s'exécute que lorsque l'utilisateur clique sur un bouton
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
L'asynchronisme permet d'exécuter des tâches en arrière-plan sans bloquer le thread principal du navigateur.

QCM 2 Corrigé

Quelle fonction globale permet de déclencher un code après un délai spécifique ?

A. wait()
B. delay()
C. setTimeout()
D. setInterval()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
setTimeout() prend un callback et un délai en millisecondes avant d'exécuter le code.

QCM 3 Corrigé

Qu'est-ce qu'une 'Promesse' (Promise) en JavaScript ?

A. Un objet représentant la réussite ou l'échec futur d'une opération asynchrone
B. Une variable qui ne change jamais de valeur
C. Une fonction qui s'exécute en boucle infinie
D. Un contrat écrit entre le développeur et le navigateur
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Une Promise est un conteneur pour une valeur qui n'est pas encore connue mais le sera bientôt.

QCM 4 Corrigé

Quel mot-clé est utilisé pour attendre le résultat d'une promesse à l'intérieur d'une fonction ?

A. wait
B. pause
C. stop
D. await
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Le mot-clé 'await' suspend l'exécution de la fonction jusqu'à ce que la promesse soit résolue.

QCM 5 Corrigé

Quel est l'état initial d'une promesse lorsqu'elle est créée ?

A. pending (en attente)
B. fulfilled (remplie)
C. rejected (rejetée)
D. resolved (résolue)
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Une promesse commence toujours par l'état 'pending' avant de passer à un état final (réussite ou échec).

QCM 6 Corrigé

Quelle méthode de promesse est appelée lorsque l'opération réussit ?

A. finally()
B. then()
C. catch()
D. success()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La méthode .then() est utilisée pour traiter le résultat positif d'une promesse.

QCM 7 Corrigé

Comment gère-t-on les erreurs d'une promesse avec la syntaxe .then() ?

A. En utilisant .error()
B. En utilisant .finally()
C. En utilisant .catch()
D. En utilisant .stop()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
La méthode .catch() permet de capturer les rejets ou les erreurs survenus pendant l'asynchronisme.

QCM 8 Corrigé

Pour utiliser le mot-clé 'await', comment la fonction parente doit-elle être déclarée ?

A. async function
B. wait function
C. defer function
D. promise function
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Une fonction doit obligatoirement être marquée du mot-clé 'async' pour pouvoir utiliser 'await' en son sein.

QCM 9 Corrigé

Quelle est l'unité de temps utilisée pour le délai dans setTimeout(fn, 1000) ?

A. Microsecondes
B. Secondes
C. Millisecondes
D. Nanosecondes
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
JavaScript utilise les millisecondes : 1000 millisecondes correspondent à 1 seconde.

QCM 10 Corrigé

Qu'est-ce que l'Event Loop (boucle d'événements) ?

A. Un virus qui fait boucler le navigateur
B. Une boucle qui dessine les éléments graphiques
C. Le mécanisme qui gère l'exécution des callbacks asynchrones
D. Une fonction qui trie les tableaux automatiquement
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
L'Event Loop surveille la pile d'exécution et déplace les tâches asynchrones prêtes vers la pile.

QCM 11 Corrigé

Quelle méthode permet d'exécuter un code de façon répétée à intervalle régulier ?

A. repeat()
B. loop()
C. setTimeout()
D. setInterval()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
setInterval() continue d'appeler la fonction spécifiée jusqu'à ce qu'il soit arrêté via clearInterval().

QCM 12 Corrigé

Que fait Promise.all([p1, p2]) ?

A. Elle exécute p1 puis p2 l'une après l'autre
B. Elle attend que toutes les promesses du tableau soient réussies
C. Elle ne garde que la promesse la plus rapide
D. Elle annule toutes les promesses
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Promise.all() est utile pour lancer plusieurs requêtes en parallèle et attendre leur finalisation globale.

QCM 13 Corrigé

Pourquoi l'asynchronisme est-il crucial pour l'expérience utilisateur (UX) ?

A. Pour augmenter la taille de la police d'écriture
B. Pour empêcher l'utilisateur de cliquer n'importe où
C. Pour éviter de 'geler' l'interface pendant le chargement de données
D. Pour réduire la consommation de batterie
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Sans asynchronisme, le navigateur s'arrêterait de répondre (figerait) pendant chaque requête réseau.

QCM 14 Corrigé

Dans un bloc try/catch avec async/await, où est gérée l'erreur ?

A. Dans le bloc try
B. Dans le bloc await
C. Dans le bloc error
D. Dans le bloc catch
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Avec async/await, le bloc catch attrape les erreurs des promesses rejetées de manière synchrone en apparence.

QCM 15 Corrigé

Que renvoie une fonction déclarée avec le mot-clé 'async' ?

A. Une promesse (Promise)
B. Une chaîne de caractères
C. Un nombre
D. Rien (undefined)
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Même si vous retournez une valeur simple, une fonction async l'enveloppe automatiquement dans une promesse.

QCM 16 Corrigé

Quelle API moderne est utilisée pour effectuer des requêtes HTTP asynchrones ?

A. getHTTP()
B. fetch()
C. request()
D. sendData()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La méthode fetch() est le standard moderne pour récupérer des ressources à travers le réseau.

QCM 17 Corrigé

Que se passe-t-il si vous oubliez 'await' devant une promesse dans une fonction async ?

A. Le script s'arrête net
B. La variable reçoit l'objet Promise au lieu de sa valeur finale
C. L'ordinateur redémarre
D. La promesse est annulée
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Sans await, le code continue immédiatement et récupère l'objet Promise en cours, pas son résultat.

QCM 18 Corrigé

Comment appelle-t-on le fait d'imbriquer trop de callbacks les uns dans les autres ?

A. Callback Tunnel
B. Callback Hell (L'enfer des callbacks)
C. Callback Loop
D. Callback Forest
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Le 'Callback Hell' rend le code illisible et difficile à maintenir, d'où l'invention des Promesses.

QCM 19 Corrigé

Quelle méthode permet d'arrêter un délai créé par setTimeout() avant qu'il ne s'exécute ?

A. clearTimeout()
B. stopTimeout()
C. deleteTimeout()
D. killTimeout()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
clearTimeout() prend l'identifiant renvoyé par setTimeout pour annuler la tâche prévue.

QCM 20 Corrigé

Quelle méthode de promesse s'exécute quoi qu'il arrive (succès ou échec) ?

A. always()
B. end()
C. finally()
D. complete()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
finally() est utile pour nettoyer des états ou fermer des indicateurs de chargement (loaders).

QCM 21 Corrigé

Si deux promesses démarrent en même temps, laquelle termine en premier avec Promise.race() ?

A. La première définie dans le tableau
B. La plus lente
C. La plus rapide à se résoudre ou échouer
D. Les deux s'arrêtent
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Promise.race() renvoie le résultat de la première promesse qui termine sa course.

QCM 22 Corrigé

Quel objet permet de rejeter manuellement une promesse lors de sa création ?

A. Le paramètre reject
B. Le paramètre error
C. Le paramètre fail
D. Le paramètre stop
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Le constructeur de Promise reçoit une fonction avec deux arguments : resolve et reject.

QCM 23 Corrigé

Quel est l'équivalent de .then() avec la syntaxe async/await ?

A. Il n'y a pas d'équivalent
B. L'utilisation de 'await' et l'assignation à une variable
C. L'utilisation de 'then' après await
D. L'utilisation du mot-clé 'next'
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
L'écriture 'const data = await promise;' remplace avantageusement 'promise.then(data => ...) ;'.

QCM 24 Corrigé

Dans l'Event Loop, où sont placées les promesses résolues ?

A. Dans la pile d'appels (Call Stack)
B. Dans la file des macros-tâches
C. Dans la file des micro-tâches (Microtask Queue)
D. Dans le cache du navigateur
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Les promesses sont des micro-tâches et sont prioritaires sur les macros-tâches comme setTimeout.

QCM 25 Corrigé

Quelle est la valeur retournée par fetch() ?

A. Le texte du fichier directement
B. Un objet JSON
C. Une erreur HTTP
D. Une Promise résolvant un objet Response
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
fetch() renvoie une promesse. Il faut ensuite appeler .json() ou .text() sur la réponse pour voir les données.

QCM 26 Corrigé

Pourquoi JavaScript est-il dit 'monothread' ?

A. Parce qu'il ne peut faire qu'une seule chose à la fois sur le thread principal
B. Parce qu'il ne fonctionne que sur un seul processeur
C. Parce qu'il n'utilise qu'un seul fichier .js
D. Parce qu'il est très lent
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
JavaScript n'exécute qu'une instruction à la fois ; l'asynchronisme simule le multitâche via l'Event Loop.

QCM 27 Corrigé

Comment créer une promesse déjà résolue avec une valeur ?

A. new Promise(done)
B. Promise.success(val)
C. Promise.resolve(val)
D. Promise.ready(val)
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Promise.resolve() est un raccourci pour créer instantanément une promesse réussie.

QCM 28 Corrigé

Que se passe-t-il si une erreur survient dans une promesse et qu'aucun .catch() n'est présent ?

A. Le programme ignore l'erreur
B. Une alerte Windows s'affiche
C. L'erreur est automatiquement corrigée
D. Une erreur 'Uncaught (in promise)' apparaît dans la console
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Il est indispensable de toujours capturer les erreurs asynchrones pour éviter des comportements imprévus.

QCM 29 Corrigé

Quel est le résultat de : console.log(1); setTimeout(() => console.log(2), 0); console.log(3); ?

A. 1, 2, 3
B. 1, 3, 2
C. 2, 1, 3
D. 3, 2, 1
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Même avec un délai de 0, setTimeout est envoyé dans la file d'attente et s'exécute après le code synchrone.

QCM 30 Corrigé

Quel mot-clé est utilisé pour rejeter une promesse dans une fonction async ?

A. stop
B. throw
C. reject
D. exit
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Dans une fonction async, utiliser 'throw' rejette automatiquement la promesse de la fonction.

Mots & Définitions
Consultez les définitions des termes importants.

Principe permettant à un programme d’exécuter des tâches longues sans bloquer le reste du code. Il améliore la fluidité des applications en laissant l’interface et les autres instructions continuer pendant une attente.

Objet JavaScript qui représente le résultat futur d’une opération asynchrone. Elle peut être en attente, réussie ou échouée selon l’issue de cette opération.

Mot-clé utilisé pour déclarer une fonction capable de gérer des opérations asynchrones. Une fonction async renvoie toujours une promesse, même si cela n’est pas visible au premier regard.

Mot-clé permettant de suspendre temporairement l’exécution d’une fonction async jusqu’à la résolution d’une promesse. Il rend le code asynchrone plus lisible et plus proche d’une logique séquentielle.

Fonction qui permet d’exécuter un code après un délai précis exprimé en millisecondes. Elle est couramment utilisée pour différer une action sans bloquer le programme.

Fonction permettant d’exécuter automatiquement un code à intervalles réguliers. Elle est utile pour des actions répétitives comme des mises à jour ou des animations.

Mécanisme interne de JavaScript qui organise l’exécution des tâches asynchrones. Il gère l’ordre dans lequel les fonctions sont traitées après la fin du code principal.

Méthode d’une promesse qui permet de traiter le résultat lorsqu’une opération asynchrone réussit. Elle sert à enchaîner des actions après une résolution correcte.

Méthode utilisée pour intercepter et gérer les erreurs liées à une promesse. Elle permet d’éviter des erreurs non contrôlées dans l’application.

Méthode d’une promesse qui s’exécute quel que soit le résultat final. Elle est souvent utilisée pour des opérations de nettoyage ou de fin de traitement.

File d’attente prioritaire dans laquelle sont placées les promesses résolues. Elle est traitée avant les autres tâches différées du navigateur.

API moderne utilisée pour effectuer des requêtes HTTP de manière asynchrone. Elle repose sur les promesses et facilite la communication avec des serveurs.

Fonction passée en paramètre à une autre fonction pour être exécutée plus tard. Elle est historiquement utilisée pour gérer l’asynchronisme en JavaScript.

Situation où trop de callbacks sont imbriqués les uns dans les autres. Cela rend le code difficile à lire, maintenir et déboguer.

Caractéristique de JavaScript indiquant qu’il exécute le code sur un seul thread principal. L’asynchronisme compense cette limite pour maintenir de bonnes performances.

À propos de ce QCM

Cette série de QCM explore en profondeur les principes clés de l’asynchronisme en JavaScript, en mettant l’accent sur la compréhension des mécanismes plutôt que sur la simple mémorisation.

Les notions abordées permettent de saisir comment le langage gère les opérations différées, le temps et les événements sans interrompre le flux principal d’exécution.

Les promesses occupent une place centrale dans cet apprentissage.

Elles constituent la base de nombreuses fonctionnalités modernes et offrent une manière structurée de gérer les succès comme les échecs des opérations asynchrones.

Leur cycle de vie, leurs méthodes associées et leur intégration avec les fonctions async/await permettent d’écrire un code plus lisible et plus proche du raisonnement humain.

Un autre aspect essentiel concerne la gestion du temps et des répétitions, notamment à travers des fonctions capables de planifier l’exécution différée ou régulière d’un traitement.

Ces mécanismes sont indispensables pour concevoir des comportements dynamiques, tout en évitant le blocage de l’interface.

Les QCM mettent également en lumière le rôle interne de JavaScript, notamment la manière dont les tâches sont organisées et priorisées.

Comprendre la boucle d’événements et les files d’attente associées permet d’anticiper l’ordre réel d’exécution du code, souvent source de confusion chez les apprenants.

En s’entraînant sur ces questions, l’utilisateur développe des compétences solides en lecture de code, en raisonnement logique et en détection d’erreurs asynchrones.

Cette approche favorise l’autonomie, l’auto-évaluation et une préparation efficace aux examens, concours ou situations professionnelles concrètes.

Conclusion

Maîtriser l’asynchronisme en JavaScript est une étape clé dans le parcours de tout développeur web.

Ces QCM offrent un cadre structuré pour consolider les bases, clarifier les mécanismes internes et renforcer la compréhension des outils modernes du langage.

En s’exerçant régulièrement, l’utilisateur gagne en assurance, en précision et en capacité d’analyse face à des scénarios réels.

Cette pratique progressive permet non seulement d’éviter des erreurs fréquentes, mais aussi de construire des applications plus fluides, plus stables et mieux adaptées aux attentes des utilisateurs.