QCM Javascript – Partie 37
QCM sur Javascript avec des réponses pour la préparation des tests techniques, des tests en ligne, aux examens et aux certifications. Ces questions et réponses sont tirés d’un vrai entretien écrit et certaines parties sont en direct.
1. Repérez l’erreur dans ce code de promesse :
let p = new Promise((resolve, reject) => { resolve('Success'); reject('Failed'); }).then(result => console.log(result)).catch(error => console.log(error));
A La promesse ne doit pas appeler à la fois resolve et reject
B La méthode .then() est mal placée
C Le bloc .catch() n’est pas nécessaire
D La promesse ne gère pas les opérations asynchrones
2. Quel est l’objectif du mot-clé async en JavaScript ?
A Mettre en pause l’exécution d’une fonction
B Déclarer une fonction comme étant asynchrone
C Pour accélérer l’exécution d’une fonction
D Pour gérer plusieurs promesses simultanément
3. Comment fonctionne la fonction await à l’intérieur d’une fonction asynchrone ?
A Il arrête le programme entier jusqu’à ce que la promesse attendue soit résolue
B Il attend la résolution d’une promesse avant de poursuivre l’exécution de la fonction asynchrone
C Elle envoie une requête au serveur
D Elle crée un nouveau thread pour l’exécution asynchrone
4. Quel sera le résultat de la fonction asynchrone suivante ?
async function getData() { let response = await fetch('https://api.example.com/data'); let data = await response.json(); console.log(data); } getData();
A Le contenu de « https://api.example.com/data
B Un objet JavaScript
C Un message d’erreur
D Rien
5. Que se passe-t-il en cas d’échec de la méthode fetch ?
async function getData() { try { let response = await fetch('https://api.example.com/data'); if (!response.ok) throw new Error('Erreur dans la récupération des données'); let data = await response.json(); return data; } catch (error) { console.error(error); } }
A Il affiche « Erreur dans la récupération des données ».
B Il retourne « Erreur dans la récupération des données ».
C Il génère une erreur mais ne le capture pas.
D Elle renvoie une valeur undefined
6. Identifiez le problème dans cette fonction asynchrone :
async function getData() { let data = await fetch('https://api.example.com').json(); console.log(data); }
A Utilisation incorrecte de await
B Erreur de syntaxe dans fetch
C Pas de gestion des erreurs en cas d’échec de la méthode fetch
D Mot-clé async manquant
7. Quel est le problème avec cette fonction asynchrone ?
async function getProduct() { let prod = await fetch('/product'); if (prod.id === 989) { return 'PC'; } }
A La fonction peut renvoyer undefined
B prod.id est toujours undefined
C La requête fetch est incorrecte
D Il n’y a pas de gestion des erreurs pour la méthode fetch.
8. Qu’est-ce que le « currying » en JavaScript ?
A Le processus de décomposition d’une fonction en une série de fonctions qui prennent chacune un seul argument.
B La transformation d’une fonction pour gérer son état
C Une façon d’écrire du code asynchrone
D Optimisation des fonctions pour la performance
9. En quoi l’application partielle diffère-t-elle de la curryfication ?
A L’application partielle consiste à fixer certains arguments à une fonction, tandis que la curryfication consiste à décomposer une fonction en une série de fonctions qui prennent chacune un seul argument.
B L’application partielle est une technique d’optimisation des performances, alors que la curryfication est une technique de gestion des erreurs.
C L’application partielle concerne les fonctions asynchrones, tandis que la curryfication concerne les fonctions synchrones
D Il n’y a pas de différence
10. Quel sera le résultat de la fonction currying suivante ?
function multiplication(a) { return function(b) { return a * b; }; } let multiplicationParDeux = multiplication(2); console.log(multiplicationParDeux(3));
A 3
B 6
C 2
D Erreur de syntaxe
11. Quel sera le résultat de la fonction currying suivante ?
function somme(a) { return function(b) { return function(c) { return a + b + c; }; }; } let sommeCinq = somme(2)(3); console.log(sommeCinq(5));
A 10
B 15
C 5
D Erreur de syntaxe
12. Repérez l’erreur dans cette implémentation du currying:
function somme(a, b, c) { return a + b + c; } let currySomme = (a) => (b) => (c) => somme(a, b); console.log(currySomme(1)(2)(3));
A Argument manquant dans l’appel final de la fonction
B Valeur de retour incorrecte dans currySomme
C La fonction somme n’est pas nécessaire
D Erreur de syntaxe