QCM 400 Questions (PDF)
Document Details

Uploaded by EngagingCoconutTree
Tags
Summary
This document contains 400 multiple-choice questions (QCM) about JavaScript. It covers core JavaScript concepts, including variables, arrays, functions, and more. The questions are designed for assessment.
Full Transcript
Partie 1 : QCM à Choix Unique (50 questions) B. try / catch C. switch / case 1. Quel mot-clé permet de déclarer une variable accessible...
Partie 1 : QCM à Choix Unique (50 questions) B. try / catch C. switch / case 1. Quel mot-clé permet de déclarer une variable accessible D. throw / return uniquement dans le bloc où elle est définie ? A. var 11. Quel mot-clé est utilisé pour stopper entièrement B. let une boucle for ? C. const A. stop D. function B. exit C. break 2. Quelle méthode permet de transformer un tableau en D. return chaîne de caractères en insérant un séparateur ? A. split() 12. Que fait Array.prototype.map() ? B. join() A. Il modifie le tableau d’origine. C. concat() B. Il renvoie un nouveau tableau transformé. D. reduce() C. Il efface le contenu du tableau. D. Il trie le tableau. 3. Que retourne typeof null en JavaScript ? A. "null" 13. Quelle est la portée d’une variable déclarée avec B. "undefined" var dans une fonction ? C. "object" A. Portée bloc D. "string" B. Portée globale C. Portée de fonction En JavaScript, typeof null retourne "object" à cause d'une erreur historique. D. Portée script uniquement 4. Comment s’appelle la phase où JavaScript prépare les 14. Quelle est la sortie de console.log(2 == '2') ? déclarations de variables et de fonctions en mémoire A. true avant l’exécution ? B. false A. Héritage C. undefined B. Initialisation D. Erreur de type C. Hoisting D. Instanciation 15. Que retourne typeof [] ? A. "array" Le hoisting prépare les variables et fonctions en mémoire avant l'exécution du B. "object" code. C. "[]" 5. Quelle méthode ajoute un ou plusieurs éléments à la fin D. "undefined" d’un tableau ? 16. Quelle méthode permet de vérifier si un tableau A. push() contient un élément ? B. pop() A. Array.includes() C. unshift() B. Array.has() D. shift() C. Array.find() 6. Lequel de ces types n’existe pas en JavaScript D. Array.match() ? 17. Que renvoie false == 0 ? A. number A. true B. boolean B. false C. symbol C. undefined D. double D. Lève une erreur 7. Quelle méthode est utilisée pour convertir une chaîne en 18. Quelle méthode supprime le dernier élément d’un nombre entier ? tableau et le renvoie ? A. parseInt() A. push() B. parseFloat() B. pop() C. Number() C. shift() D. Math.floor() D. splice() 9. Quel est le résultat de '5' + 3 ? 19. Quelle syntaxe permet de déstructurer un objet ? A. 8 A. let { nom } = objet; B. 53 B. let [ nom ] = objet; C. NaN C. let ( nom ) = objet; D. Lève une erreur D. let = objet; 10. Quelle structure permet de gérer les erreurs avec un bloc d’exécution et 20. Comment déclarer une constante en JavaScript ? un bloc de récupération ? A. var CONSTANT A. if / else B. let constant B. true C. const constant C. Lève une erreur D. CONST constant D. null 21. Quel est le résultat de typeof NaN ? 31. Comment définit-on une propriété d’un objet en A. "number" utilisant la notation littérale ? B. "NaN" A. let obj = { nom: "Alice" }; C. "undefined" B. let obj = Object(nom: "Alice"); D. "object" C. let obj = (nom = "Alice"); D. obj.nom = "Alice"; 22. Que fait la méthode String.prototype.slice(start, end) ? A. Supprime une partie de la chaîne 32. Que fait la méthode Array.prototype.forEach() ? B. Renvoie une sous-chaîne entre start et end (exclu) A. Renvoie un nouveau tableau C. Convertit la chaîne en tableau B. Exécute une fonction sur chaque élément sans D. Découpe la chaîne en mots retourner de résultat 23. Quel est l’événement déclenché quand la page a fini de se charger en C. Filtre les éléments selon une condition D. HTML ? Casse la boucle dès qu’une condition est remplie A. onload 33. Comment générer un entier aléatoire entre 0 et 9 B. DOMContentLoaded inclus ? C. loadend A. Math.random() * 10 D. ready B. Math.floor(Math.random() * 10) 24. Quel opérateur compare et convertit éventuellement les types avant C. Math.floor(Math.random() * 9) comparaison ? D. Math.ceil(Math.random() * 9) A. === 34. Quelle propriété d’un objet Error en JavaScript B. !== contient le message d’erreur ? C. == A. Error.text D. = B. Error.message 25. Quelle méthode convertit un objet JavaScript en JSON ? C. Error.info A. JSON.parse() D. Error.description B. JSON.stringify() 35. Que renvoie isNaN("Hello") ? C. obj.toString() A. true D. String() B. false 26. Dans quelle portée vit une variable déclarée avec let dans un bloc if ? C. Lève une erreur A. Portée globale D. "Hello" B. Portée de fonction 36. Quel mot-clé permet de sortir d’une fonction et C. Portée du bloc if éventuellement de renvoyer une valeur ? D. Portée de script A. break 27. Comment se nomme la syntaxe suivante : B. stop (...args) => {} ? C. return A. Fonction classique D. exit B. Fonction anonyme 37. Quelle est la sortie de console.log(typeof C. Fonction fléchée (arrow function) undefined) ? D. Méthode d’un objet A. "object" 28. Quelle méthode array renvoie le premier élément qui satisfait une B. "null" condition ? C. "undefined" A. filter() D. "string" B. find() 38. Quelle méthode permet de chainer des promesses C. includes() de façon séquentielle ? D. forEach() A. promise.stack() 29. Quel objet global représente l’API de la console en JavaScript ? B. promise.next() A. console C. promise.then() B. log D. promise.link() C. window.consoleAPI 39. Comment nomme-t-on une fonction passée en D. debug paramètre à une autre fonction ? 30. Quelle est la sortie de Boolean([]) ? A. Fonction dynamique A. false B. Fonction callback C. Fonction flechée B. :: D. Fonction asynchrone C. >> D. ?? 40. Quelle méthode JSON convertit une chaîne JSON en objet JavaScript ? A. JSON.stringify() 43. Que fait l’opérateur ?? (nullish coalescing) ? B. JSON.parse() A. Compare strictement deux valeurs C. JSON.format() B. Retourne la valeur de droite si la valeur de gauche D. JSON.decode() est null ou undefined C. Effectue la fusion de deux objets 41. Que renvoie typeof function(){} ? D. Vérifie si la valeur est strictement null A. "function" B. "object" 44. Que se passe-t-il si on appelle une fonction avant C. "function object" sa déclaration avec function maFonction(){} ? D. "undefined" 45. A. Erreur de référence B. La fonction est hoistée, donc accessible 42. Lequel de ces opérateurs est utilisé pour la décomposition d’un tableau C. La fonction est ignorée en arguments de fonction ? D. Le code plante uniquement en mode strict A.... Partie 2 : QCM à Choix Multiples (50 questions) 9. Quels sont les deux paramètres de base de la fonction exécuteur d’une promesse ? Attention : Ici, plusieurs réponses peuvent être correctes. A. resolve B. reject 1. Quelles sont les méthodes qui modifient directement le tableau C. success initial ? D. error A. map() B. splice() 10. Lesquelles de ces boucles existent en C. push() JavaScript ? D. pop() A. for B. for...in 2. Quelles valeurs sont considérées comme falsy en JavaScript ? C. for...of A. false D. foreach B. 0 C. null 11. Quels événements sont liés aux clics de souris D. undefined ? A. click 3. Lesquels de ces opérateurs sont des opérateurs logiques ? B. dblclick A. && C. contextmenu B. || D. mouseover C. === 12. Quels opérateurs comparent strictement sans D. ! conversion de type ? 4. Lesquels de ces objets sont des objets globaux du navigateur ? A. == 5. A. window B. === B. document C. !== C. console D. != D. NodeList 13. Lesquelles de ces méthodes sont disponibles 6. Lesquelles de ces syntaxes créent un tableau vide ? sur un objet Promise ? A. const arr = []; A..then() B. const arr = new Array(); B..catch() C. const arr = {}; C..all() D. const arr = [null]; (crée un tableau contenant un élément null) D..finally() 7. Quels mots-clés permettent de déclarer des variables en ES6 ? 14. Lesquelles de ces valeurs sont évaluées à true A. var en contexte booléen ? B. let A. '0' (string) C. const B. [] (tableau vide) D. function C. null D. {} (objet vide) 8. Lesquels de ces types sont des types primitifs en JavaScript ? A. string 15. Lesquels de ces objets sont utilisables pour B. number effectuer des requêtes HTTP en JavaScript C. boolean (côté navigateur) ? D. object A. XMLHttpRequest B. fetch B. switch / case C. axios (librairie externe) C. for / while D. Response D. throw / catch 16. Lesquelles de ces méthodes peuvent être utilisées pour itérer sur 24. Lesquelles de ces méthodes peuvent ajouter un tableau sans modifier l’original ? des éléments à un tableau ? A. forEach() A. push() B. map() B. unshift() C. reduce() C. concat() D. splice() D. slice() 17. Lesquels de ces mots-clés sont des instructions de saut ? 25. Lesquels de ces objets sont des constructeurs A. break natifs en JavaScript ? B. continue A. Array C. exit B. Object D. return C. Function D. React 18. Lesquelles de ces lignes sont correctes pour convertir une chaîne en nombre ? 26. Lesquelles de ces méthodes peuvent A. Number("42") transformer un tableau en chaîne de B. parseInt("42") caractères ? C. "42" * 1 (Multiplier une chaîne numérique par 1 ("42" * 1) A. join() force une conversion implicite.) B. toString() D. toInteger("42") C. pop() D. toLocaleString() 19. Lesquelles de ces syntaxes sont valides pour une fonction fléchée ? 27. Lesquels de ces mots-clés gèrent A. () => {} l’asynchronisme par promesses ? B. (x) => x * 2 A. async C. (x, y) => { return x + y } B. await D. x => { x * 2 } (piège : manque le return) C. then D. sync 20. Lesquels de ces types de données sont immuables ? A. string 28. Lesquels de ces éléments sont nécessaires B. boolean pour écouter un événement en DOM ? C. object A. Élément cible D. number B. Type d’événement (ex: click) Un élément immuable est un élément dont la valeur ne peut pas C. Gestionnaire de rappel (callback) être modifiée après sa création. Si une opération semble D. return "modifier" cette valeur, elle retourne en réalité une nouvelle valeur sans affecter l'originale. 29. Lesquels de ces types de boucles permettent de parcourir un tableau directement ? Example A. for B. for...in let str = "bonjour"; C. for...of D. while let newStr = str.toUpperCase(); // Crée une nouvelle chaîne "BONJOUR" 30. Lesquels de ces frameworks ou bibliothèques sont basés sur JavaScript (hors Node.js) ? console.log(str); // "bonjour" (la chaîne originale reste inchangée) A. React 21. Dans un try...catch, que se passe-t-il si le try ne lève aucune B. Angular exception ? C. Vue.js A. Le catch est ignoré D. Django B. Le catch est exécuté quand même 31. Lesquels de ces mots-clés sont valides pour la C. Le code se poursuit normalement déclaration d’une variable en ES5 et ES6 ? D. Une erreur est levée si aucun finally A. var (ES5) 22. Lesquels de ces événements JavaScript sont liés au clavier ? B. let (ES6) A. keydown C. const (ES6) B. keypress D. final C. keyup 32. Lesquelles de ces méthodes sont utilisées D. onload pour parcourir un tableau et peuvent 23. Lesquels de ces statements contrôlent le flux conditionnel ? renvoyer un nouveau tableau ? A. if / else A. map() 38. Lesquels de ces aspects concernent la B. filter() “portée” (scope) en JavaScript ? C. reduce() A. Portée globale D. forEach() B. Portée de bloc avec let C. Portée de fonction avec var 33. Lesquels de ces opérateurs comparent en incluant une conversion D. Portée d’objet de type ? A. == 39. Lesquelles de ces syntaxes permettent de B. === faire un commentaire en JavaScript ? C. != A. // commentaire D. !== B. C. (plutôt HTML) 34. Lesquels de ces objets appartiennent à l’API Web Storage ? D. # commentaire (style de commentaire A. sessionStorage en B. localStorage Python) C. cookieStorage (n’existe pas) D. indexedDB (API de stockage, mais différent) 40. Lesquels de ces éléments peuvent être passés comme paramètres à une fonction ? 35. Quels éléments de syntaxe permettent d’écrire une chaîne multi- A. Des nombres ligne ? B. Des chaînes A. ` ` Backticks (templates strings) C. Des objets B. "" dans une chaîne simple D. D’autres fonctions C.""" triple-quote (inexistant en JS) D.+` pour concaténer 41. Lesquelles de ces méthodes peuvent trier un 36. Lesquels de ces objets sont natifs du moteur JavaScript tableau ? (ECMAScript) et non spécifiques au DOM ? A. sort() A. Math B. reverse() B. Date C. order() (inexistant) C. document D. localeCompare() (méthode de string, D. JSON pas d’array) 37. Quelles syntaxes sont valides pour déclarer une fonction nommée 42. Quels mécanismes permettent la gestion ? asynchrone en JavaScript ? A. function maFonction() {} A. Callbacks D. Threads multiples par défaut B. maFonction = () => {} (Cette syntaxe déclare une fonction B. Promises fléchée assignée à une variable) C. Async/await C. function() => {} (invalide) D. let maFonction = function(){} (assigne une fonction anonyme à une variable nommée) Partie 3 : 100 Questions à Choix Unique D. result 1. (CU) Quelle syntaxe permet de définir une fonction 5. (CU) Comment appelle-t-on la fonctionnalité auto-invoquée (IIFE) ? qui propage les arguments d’un tableau dans A. function() {... }(); une fonction ? B. (function() {... })(); A. L’opérateur spread... C. (() => {... })(); B. La méthode apply() D. auto function() {... } C. L’opérateur rest... D. La déstructuration de tableau 2. (CU) Lequel de ces mots-clés est utilisé pour marquer une fonction asynchrone ? 6. (CU) Dans quel cas peut-on utiliser le mot-clé A. await await ? B. async A. Dans n’importe quelle fonction C. defer B. Uniquement dans une fonction marquée async D. promise C. Dans un bloc if 4. Quelle propriété d’un objet Promise indique son état D. Dans une fonction fléchée classique courant (pending, fulfilled, ou rejected) ? 7. (CU) Quelle est la sortie de la fonction A. status fléchée B. state (() => 42)() ? C. Il n’existe pas de propriété publique pour ça A. undefined B. 42 16. (CU) Dans une fonction fléchée, si on ne met C. Erreur de syntaxe pas d’accolades et on écrit () => 42, que se D. Objet Promise passe-t-il ? A. La fonction renvoie toujours undefined 8. (CU) Pour gérer des actions asynchrones successives, B. La fonction renvoie la valeur 42 laquelle de ces syntaxes est la plus moderne ? C. La fonction ne compile pas A. Les callbacks imbriqués D. On obtient un objet Promise B. Les promesses chaînées C. L’utilisation de async/await 17. (CU) Quelle méthode de l’Array invoque une D. L’utilisation de setTimeout fonction pour chaque élément et accumule un seul résultat final ? 9. (CU) Dans une IIFE, les variables déclarées avec var A. reduce() sont : B. map() A. Globales C. every() B. Accessibles uniquement dans la fonction IIFE D. some() C. Inexistantes, c’est interdit D. Converties en let 18. (CU) Quelle est la principale différence entre map() et forEach() ? 10. (CU) Quelle méthode peut transformer un tableau en A. map() modifie le tableau original un seul résultat (accumulateur) ? B. map() renvoie un nouveau tableau, A. some() forEach() ne retourne rien B. reduce() C. forEach() est plus rapide C. every() D. forEach() autorise le break D. map() 19. (CU) Quel est le bon nom pour la fonction 11. (CU) Une fonction auto-invoquée (IIFE) a pour but autoinvoquée suivante : +function(){ principal de : console.log("test"); }() ? A. Déclarer un module ESM A. IIFE B. Éviter la pollution de l’espace global (Les IIFE isolent B. Arrow function les variables pour ne pas interférer avec l’espace C. Promise chain global) D. Classe anonyme C. Empêcher toute réutilisation de la fonction D. Remplacer une fonction fléchée 20. (CU) Que se passe-t-il si l’on utilise await en dehors d’une fonction asynchrone (sans 12. (CU) Lequel n’est pas un mot-clé permettant la transpilation particulière) ? déstructuration ? A. Ça fonctionne en mode strict A. let { x } = obj; B. On obtient une erreur de syntaxe B. let [ y ] = arr; C. On obtient undefined C. const { z } = obj; D. L’exécution est bloquée D. unpack { a } = obj; 21. (CU) Dans une fonction fléchée, le mot-clé 13. (CU) Dans un async function, que retourne par défaut arguments : un appel à cette fonction ? A. Se réfère à la liste des arguments A. Une promesse B. Est inexistant (lèvera une erreur si utilisé B. Un générateur directement) C. Le résultat brut de la fonction C. Contient un objet de type array D. Un tableau D. Est un alias pour rest 22. (CU) Lors de l’utilisation de Une fonction async retourne toujours une promesse, même sans Array.prototype.every(), quel résultat return explicite indique que la condition est vraie pour tous 14. (CU) Que fait la méthode Array.prototype.some() ? les éléments ? A. Teste si au moins un élément satisfait la condition A. true B. Transforme chaque élément pour en faire un nouvel array B. false C. Vérifie si tous les éléments satisfont une condition D. Filtre les C. Un nouveau tableau filtré éléments D. Une exception en cas de faux 15. (CU) L’utilisation de return dans une méthode d’array 23. (CU) Quelle méthode d’Array renvoie le comme forEach() est : premier index correspondant à l’élément A. Possible pour sauter au prochain élément cherché ? B. Ignorée par la méthode forEach() A. findIndex() (retourne l’index du premier élément qui C. Termine la boucle satisfait une condition.) D. Change la valeur de this B. indexOf() (retourne le premier index correspondant à une valeur.) C. search() C. Async closure D. includes() (retourne vrai/faux, pas un index) D. Module pattern 4. (CU) La fonction auto-invoquée (IIFE) suivante : 13. (CU) Dans une fonction async, utiliser throw (function(x){ console.log(x); })(5); new Error("...") : A. Rejette la promesse A. Affiche 5 retournée B. Provoque une erreur B. Résout la promesse avec un objet Error C. C. Renvoie undefined en console Interrompt l’exécution sans effet sur la D. Est équivalente à une fonction fléchée promesse D. Génère un warning sans stopper l’exécution 5. (CU) Dans un async function, que renvoie la ligne return 10; ? 14. (CU) Array.prototype.every() retourne true si A. 10 directement : B. Une promesse résolue avec la valeur 10 A. Au moins un élément satisfait la condition C. Une promesse rejetée B. Tous les éléments satisfont la condition D. Une valeur undefined C. Aucun élément ne satisfait la condition D. Le tableau est vide 6. (CU) La méthode Array.prototype.reduce() prend combien de paramètres pour la fonction de rappel ? 15. (CU) La forme (function myIIFE(){... }()) est : 7. A. 1 (l’élément courant) A. Une fonction nommée IIFE B. 2 (l’accumulateur et l’élément courant) B. Impossible, lève une erreur C. 4 (accumulateur, valeur courante, index, C. Un module ESM tableau) D. Un alias de la fonction fléchée D. 3 (accumulateur, valeur courante, tableau) 16. (CU) Dans une fonction fléchée () => ({ x: 1 }), array.reduce((accumulateur, valeurCourante, index, à quoi servent les parenthèses autour du tableau) => { bloc { x: 1 } ? A. À retourner un objet littéral // Corps de la fonction de rappel B. À créer un bloc de code vide C. À ignorer la valeur }, valeurInitiale); D. À activer le mode strict 8. (CU) Comment s’appelle le “style” d’écriture JavaScript Les parenthèses indiquent qu’il s’agit d’un objet sans framework, ni librairie spécifique ? littéral et non d’un bloc de code. A. Node.js core B. ES6 standard 17. (CU) Quelle méthode d’Array coupe un C. Vanilla JS tableau en plusieurs morceaux qu’elle D. Pure ECMAScript retourne comme sous-tableaux ? A. slice() 9. (CU) Quelle clause permet de capturer une erreur dans B. splice() un bloc try ? C. split() (non, c’est string) A. catch D. Il n’y a pas de méthode native B. error C. finally 18. (CU) array.reduce((acc, val) => acc + val, 0) D. rescue fait : A. La somme des éléments du tableau 10. (CU) Dans une fonction fléchée à un seul paramètre, B. La concaténation des éléments que peut-on omettre ? C. Filtre les éléments nuls A. Les parenthèses autour du paramètre D. Crée un objet B. Le mot-clé function C. Le return si on met des accolades 19. (CU) Quelle expression fléchée ne renvoie pas undefined par défaut ? D. Les accolades si on renvoie directement une valeur A. () => { 42 } 11. (CU) Sur quelle méthode d’Array se base-t-on pour B. () => 42 vérifier si au moins un élément remplit une condition ? C. (x) => { x + 1 } A. find() D. () => { return } B. some() C. map() 20. (CU) Comment appelle-t-on l’opérateur... D. every() dans 12. (CU) Comment appelle-t-on la syntaxe (function(){... (a, b,...rest) => {} ? })() dans la documentation ? A. Spread operator A. Arrow expression B. Rest parameter B. IIFE (Immediately Invoked Function Expression) C. Template operator D. Destructuring operator 24. (CU) (() => { console.log("Hello"); })() est un exemple de : 21. (CU) Sur un tableau [10, 20, 30], myArray.some(x => x > 25. A. Fonction auto-invoquée fléchée 15) renvoie : B. IIFE standard A. true C. Module ESM B. false D. Méthode asynchrone C. undefined D. Erreur 26. (CU) Une fonction async peut contenir : A. Des mots-clés await 22. (CU) Dans async function x() { return "ok"; }, x() B. Des boucles for, while renvoie : C. Des instructions return A. Une promesse résolue avec "ok" D. Un objet Promise implicite B. La chaîne "ok" directement C. Une erreur D. Un générateur 27. (CU) Dans l’écosystème JavaScript, “Vanilla 23. (CU) array.reduce((acc, val) => acc + val) sans second JS” signifie : argument : A. Un nouveau framework minimaliste A. Utilise 0 comme accumulateur initial B. Du JavaScript natif sans librairie tierce B. Utilise le premier élément comme accumulateur initial C. Du code Node.js C. Lève une erreur D. Une architecture React custom D. Utilise null comme accumulateur 1. (CU) Quelle syntaxe de déstructuration permet de 6. (CU) Array.prototype.some() renvoie true quand : renommer une variable en l’extrayant ? A. Tous les éléments passent le test A. const { prop: alias } = obj; B. Au moins un élément passe le test B. const [ alias : prop ] = arr; C. Aucun élément ne passe le test C. const { rename = prop } = obj; D. Le tableau est vide D. alias = obj.prop; 7. (CU) Dans un async function, comment gérer une renommer prop en alias lors de la déstructuration erreur de promesse rejetée ? A. Avec un bloc d'un objet. try...catch B. Avec promise.onError(...) 2. (CU) Que signifie l’opérateur ?. (optional chaining) C. Impossible, la fonction se termine sans faute ? D. En remplaçant return par throw A. Permet d’enchaîner des appels de fonction de manière synchrone 8. (CU) Array.prototype.every() retourne false si : B. Évite les erreurs si une propriété est null ou A. Tous les éléments valident le test undefined B. Un seul élément ne valide pas le test C. Convertit un nombre en entier C. Le tableau est vide D. Compare deux objets D. On n’a pas de callback 9. (CU) Les fonctions fléchées sont particulièrement 3. (CU) L’utilisation de await Promise.all([...]) dans utiles pour : une fonction async sert à : A. Fournir un this dynamique A. Exécuter les promesses en séquentiel B. Simplifier l’écriture de callbacks B. Exécuter les promesses en parallèle et C. Générer des classes attendre la fin de toutes D. Remplacer async/await C. Cloner plusieurs objets D. Lancer une unique promesse 10. Dans le DOM, quelle méthode renvoie le premier élément correspondant à un sélecteur CSS ? 4. (CU) Array.prototype.map() : A. document.getElementById() A. Transforme chaque élément et renvoie un B. document.querySelector() nouveau tableau C. document.querySelectorAll() B. Filtre les éléments nuls D. document.getElementsByClassName() C. Retourne un objet itérateur D. Modifie le tableau initial 11. Dans un document HTML, la propriété document.body fait référence : 5. (CU) Comment appeler une fonction autoinvoquée A. À l’élément fléchée ? B. À l’élément A. ( => console.log("test") )(); C. À l’élément B. (() => { console.log("test"); })(); D. À tous les éléments C. auto=>{...}(); D. invoke(()=>{...}); 23. Quelle est la bonne syntaxe pour ajouter un écouteur d’événement “click” sur un bouton en JavaScript Vanilla ? A. button.addListener("click", function() {... }); A. parent.remove(child) B. button.on("click", function() {... }); B. child.remove() (Ne met pas en évidence la relation C. button.addEventListener("click", function() {... }); parent-enfant) D. addEvent(button, "click", fn); C. parent.removeChild(child) D. child.delete() 24. (CU) Dans une page HTML, le DOM est entièrement 32. (CU)Dans les événements DOM, l’objet event.target chargé. Quel événement du document peut-on écouter pointe vers : pour exécuter du code après le parsing initial du HTML ? A. L’élément sur lequel l’écouteur a été attaché A. load B. L’élément qui a réellement déclenché l’événement B. DOMContentLoaded C. L’objet global document C. onready D. La fenêtre window D. beforeunload 33. (CU)Quelle propriété du DOM permet de lire ou 25. (CU)Dans un script JavaScript, l’accès à modifier le code HTML interne d’un élément ? document.querySelectorAll("p") renvoie : A. element.innerHTML A. Un tableau standard B. element.value B. Un objet NodeList C. element.textContent C. Une HTMLCollection D. element.htmlContent D. Une exception si le sélecteur est multiple 34. (CU)Dans un document, 26. (CU)Quelle méthode du DOM insère un nouvel document.documentElement correspond élément en tant qu’enfant à la fin d’un nœud parent ? généralement : A. parent.replaceChild(newNode, oldNode) A. À l’élément B. parent.appendChild(newNode) B. À l’élément C. parent.insertAdjacentHTML("beforeend", newNode) C. À l’élément D. parent.addChild(newNode) D. À la racine du DOM, qui n’existe plus en HTML5 27. (CU)Dans un gestionnaire d’événements DOM, le 35. (CU)Pour enregistrer une fonction qui s’exécute avant paramètre généralement nommé event fait référence à : que la fenêtre ne se ferme (ex. un avertissement), on A. Une chaîne contenant le type d’événement utilise l’événement : B. L’objet global window A. beforeunload C. L’objet décrivant l’événement (position souris, B. unload touche pressée, etc.) C. onclose D. window.exit D. N’existe pas en JavaScript Vanilla L’événement beforeunload permet d’exécuter du code 28. (CU)Dans le DOM, element.style.backgroundColor ou d’afficher un avertissement avant que la fenêtre ne = "red"; : se ferme. A. Modifie couleur de fond. B. Lance une exception car background-color est 36. (CU)Dans un navigateur moderne, si on veut exécuter invalide un code lorsque l’utilisateur clique n’importe où dans la C. Modifie le fichier CSS externe fenêtre, on peut : D. Ne fait rien, car les propriétés CSS sont en lecture seule A. document.onGlobalClick = fn; B. window.addEventListener("click", fn); 29. (CU) C. document.windowClick(fn); Pour empêcher la propagation d’un événement vers D. document.event("click", fn); les éléments parents, on utilise : addEventListener attaché à l’objet global window permet A. event.preventDefault() de détecter les clics sur toute la fenêtre. B. event.stopPropagation() C. event.cancel() 37. (CU)Comment récupérer le contenu texte (sans HTML) D. event.defaultPrevented = true d’un élément DOM ? A. element.innerHTML 30. (CU) B. element.textContent Dans le DOM, element.classList.add("active") : C. element.htmlText A. Ajoute la classe active à l’attribut class de l’élément D. element.value B. Remplace toutes les classes existantes C. Ajoute un style en ligne “class: active;” D. Efface d’abord toutes les classes, puis ajoute active 38. (CU)Dans le DOM, querySelector("div > p") recherche : A. Tous les paragraphes de la page 31. (CU) B. Le premier descendant direct d’un En JavaScript Vanilla, quelle méthode du DOM supprime C. Le premier dans un même profondément un nœud enfant d’un parent ? D. Soulève une exception si plusieurs sont trouvés 39. (CU)Laquelle de ces propriétés DOM n’existe pas ? B. event.preventDefault() A. element.id C. return false (fonctionne partiellement dans jQuery, B. element.className pas standard) D. C. element.nodeName event.cancelBubble = true D. element.motherNode 40. (CU)Quelle est la valeur de document.readyState lorsque la page est entièrement chargée ? 54. (CU)Dans un module CommonJS, la variable qui A. "ready" référence l’objet d’exports est : A. module.exports B. "complete" C. "loaded" B. export default D. "interactive" C. this.exports D. Common.exports 41. (CU) 55. (CU)Une fonction fléchée “courte” s’écrit : Dans une fonction fléchée, si on souhaite retourner un A. () -> 42 objet littéral, on doit : B. ( => 42 ) A. Mettre l’objet entre parentheses : () => ({ a: 1 }) C. () => 42 B. Mettre l’objet après return : () => return { a: 1 } D. {} => { return 42 } C. On ne peut pas retourner d’objets littéraux en fléché D. Mettre l’objet en string JSON 56. (CU)Dans un générateur, pour émettre des valeurs successives, on utilise : 44. (CU) A. yield à chaque fois B. await à chaque fois Pour itérer sur les propriétés énumérables d’un objet en C. this.value =... JavaScript, on utilise : D. generator.push(...) A. for...of B. for...in 57. (CU)Dans un contexte Node.js en CommonJS, la C. Object.forEach() variable __dirname correspond : A. Au répertoire dans D. obj.traverse() lequel Node.js est installé B. Au répertoire courant du fichier en exécution 48. (CU)Dans le DOM, element.setAttribute("style", C. À la racine du projet "color: red"); : D. Au répertoire node_modules A. Ajoute ou modifie l’attribut style en définissant la couleur rouge 58. (CU)Dans le DOM, B. Ne fonctionne que si l’élément est un document.getElementById("monId") renvoie : C. Lance une erreur si l’attribut n’existe pas A. Une NodeList D. Enlève tous les styles sauf “color:red” B. Le premier élément avec l’attribut name="monId" C. L’élément ayant l’ID "monId", ou null si introuvable 49. (CU) D. Toujours un objet non-null, même s’il n’existe pas Une fonction fléchée ne peut pas être utilisée comme 59. (CU)Lors d’un événement DOM, l’ordre de méthode d’un objet si : propagation est : A. Ciblage -> capture -> A. On a besoin de this pour faire référence à l’objet bouillonnement B. L’objet est déclaré en const B. Capture -> ciblage -> bouillonnement C. Elle est déclarée en mode strict C. Bouillonnement -> ciblage -> capture D. On y passe des paramètres rest D. Capture -> bouillonnement -> ciblage 51. (CU)Dans une boucle for...of, on peut itérer sur : 60. (CU)Pour éviter la fermeture d’un générateur après un A. Un NodeList return, on : B. Un tableau ([]) A. Ne peut rien faire, return termine forcément C. Un objet littéral {} B. Utilise yield return D. Une chaîne de caractères C. Utilise throw D. On place un yield après le return 52. (CU) 62. (CU)Dans le DOM, un objet Event possède la Pour créer un nœud texte dans le DOM, on utilise : propriété type qui indique : A. Le type de l’élément A. document.createTextNode("du texte") ciblé B. new Text("du texte") B. Le type de l’événement (ex: "click") C. document.innerText = "du texte" C. La classe CSS en cours D. document.makeText("du texte") D. La nature de la propagation 53. (CU)Comment annuler l’action par défaut (ex: suivi du 63. (CU)Pour transformer un NodeList en vrai tableau, on lien) dans un gestionnaire d’événement DOM ? peut utiliser : A. event.stopPropagation() A. Array.from(NodeList) D. Lève une exception si n’existe pas B. [...NodeList] (opérateur spread) C. NodeList.slice() 74. (CU) D. NodeList.toArray() Une fonction fléchée avec (...args) => {} signifie : 64. (CU)Dans une fonction fléchée, this est : A. On collecte tous les arguments dans un tableau args A. Lexical, c’est-à-dire hérité du scope parent B. On applique le spread operator B. Dynamique selon l’appel C. On destructure un tableau [args] C. Toujours undefined D. Erreur de syntaxe D. Équivalent à arguments.callee 75. (CU)Dans un module ES, la syntaxe import { 66. (CU)L’événement "submit" se déclenche sur : something as alias } from "mod"; fait : A. Importe la variable alias depuis something A. Un bouton B. Importe something sous un autre nom alias B. Un formulaire C. Fait un rename local something -> alias C. Tout élément pouvant être cliqué D. Lève une erreur s’il y a déjà un export par défaut D. Le document tout entier 76. (CU)L’événement "keyup" se produit : 68. (CU)Une fonction fléchée ne possède pas de propriété prototype. Quelle conséquence cela a-t-il ? A. Quand on appuie sur une touche A. On ne peut pas l’utiliser avec new pour instancier un B. Quand on relâche une touche objet C. Quand la touche est maintenue B. Elle hérite des prototypes globaux D. Au clic de la souris C. Elle doit être déclarée en mode strict 77. (CU)Dans le DOM, element.children renvoie : D. On doit la déclarer en var A. Une collection HTML des enfants éléments (pas les 69. (CU)Quelle méthode du DOM efface tout le nœuds texte) contenu HTML d’un élément ? A. B. Un tableau complet de tous les nœuds element.remove() C. null si l’élément n’a pas de B. element.innerHTML = ""; D. Une NodeList statique C. element.textContent = ""; 78. (CU)Pour empêcher l’exécution par défaut d’un D. element.removeChildAll() lien lors d’un click, on fait : A. event.returnValue 70. (CU)En CommonJS, si on assigne directement exports = false; = {... }, cela a pour effet : B. event.preventDefault(); A. De modifier l’export par défaut C. window.location = "#" B. De redéfinir la référence exports, sans modifier D. event.stopPropagation(); module.exports C. D’écraser module.exports 81. (CU)Comment sélectionner tous les éléments D. D’ajouter un nouveau champ dans le DOM avec querySelectorAll ? A. 71. (CU) document.querySelectorAll("p") B. document.queryAll("p") Un générateur s’utilise en JavaScript principalement pour : C. document.query("p", true) A. Gérer l’asynchronisme plus simplement D. document.getElementsBy("p") qu’avec async/await B. Produire des valeurs à la demande 82. (CU)Dans une fonction fléchée, si on omet les (itération paresseuse) C. Forcer un code synchrone accolades et on écrit (a) => a * 2;, le return est : D. Éviter les blocages d’exécution A. Implícite B. Impossible, la fonction renvoie undefined 72. (CU) C. Automatique seulement si a est un nombre D. Nécessite return a * 2; (function test(){... })() : A. Est une IIFE nommée, on peut s’y référer 83. (CU)Lorsqu’on définit un module ESM dans un récursivement dans le code interne fichier.mjs côté Node.js : A. Node le lit comme un B. Crée une variable globale test module ES C. Lève une erreur si on veut l’appeler de l’extérieur B. Node le lit en CommonJS D. Transforme test en variable locale du fichier C. Node le rejette automatiquement D. On doit le transpiler avec Babel 73. (CU) 84. (CU)L’événement "change" sur un champ texte se déclenche : A. Crée un élément paragraphe, non encore inséré dans la A. À chaque frappe page B. Quand on perd le focus après avoir modifié la valeur B. Ajoute directement l’élément dans C. Jamais en JavaScript Vanilla C. Renvoie null si existe déjà D. Seulement si on utilise un 85. (CU)Un générateur en JavaScript renvoie un objet : D. exports.truc A. Iterator B. AsyncIterator 92. (CU)Si une fonction génératrice a émis toutes ses C. Promise valeurs, l’appel suivant à next() renvoie : D. Observable A. { value: undefined, done: true } B. NaN 86. (CU)(() => { console.log("Salut"); })() : C. Une erreur StopIteration A. Affiche “Salut” immédiatement (IIFE fléchée) D. { done: false } B. Ne s’exécute pas, c’est une erreur de syntaxe C. Retourne toujours un booléen D. Se lance au chargement de la page 93. (CU) 87. (CU)Dans un contexte Node.js, comment activer Dans le DOM, element.insertAdjacentHTML("afterbegin", l’export ESM dans un package.json ? "Hello") : A. "modules": true A. Insère le HTML juste avant l’élément B. "type": "module" B. Insère le HTML juste après l’élément C. "esm": "on" C. Insère le HTML comme premier enfant de l’élément D. D. "ecmaVersion": 2020 Insère en dernier enfant de l’élément 94. (CU)À l’intérieur d’une fonction fléchée, le mot-clé arguments : 88. (CU)Dans le DOM, la propriété nodeType d’un nœud A. Fonctionne comme dans une fonction classique permet de : B. Est non défini (inexistant) A. Savoir si c’est un élément, un texte, un commentaire, etc. B. Modifier la classe CSS C. Correspond au tableau des paramètres rest C. Obtenir la valeur du type d’un D. Pointeur vers le global D. Charger un module ESM 95. (CU)Un module ESM peut avoir : A. Plusieurs exports nommés B. Un seul export par défaut 89. (CU)Lorsque event.stopPropagation() est appelé C. Zéro, un ou plusieurs exports nommés dans un listener : A. L’action par défaut est annulée D. Plusieurs export default B. La phase de bouillonnement (ou capture) ne se propage plus C. L’événement est supprimé 96. (CU)Dans le DOM, element.firstChild renvoie : D. Les autres événements identiques sur l’élément sont A. Le premier nœud enfant (texte ou élément) bloqués B. Le premier élément enfant C. Toujours null si ce n’est pas un 90. (CU)Dans une fonction fléchée, (a, b) => a + b, si on D. NodeList invoque (2, 3), on obtient : A. 5 98. (CU)Une IIFE fléchée s’écrit : B. undefined A. () => () C. Une promesse résolue B. (=>{})() D. Un itérateur C. (() => { })() D. (() => { }[])() 91. (CU)En CommonJS, si vous faites const monModule = require("./module"), comment accéder à un export 100. (CU)Dans le DOM, document.createElement("script") nommé truc ? : A. Ajoute un dans la page directement B. Crée A. monModule.truc un élément qu’on doit encore attacher au DOM B. truc C. Ne fonctionne qu’avec type="module" C. module.truc D. Lance l’exécution du script immédiatement B. filter() C. slice() Partie 3 : 100 Questions à Choix Multiples D. pop() (Plusieurs réponses correctes possibles) 5. (CM) Lesquelles de ces syntaxes concernent une fonction fléchée ? 1. (CM) Quelles syntaxes sont valides pour créer une IIFE A. const f = () => {}; ? A. (function() {... })(); B. (x) => x * 2 B. (() => {... })(); C. function => {... } (invalide) C. function iife() {... } iife(); D. () => ({ a: 1 }) D. function() {... }() (invalide seul) 6. (CM) Lesquels de ces mots-clés sont liés à 4. (CM) Les méthodes d’Array qui ne modifient pas le l’asynchronisme en JavaScript ? tableau original sont : A. async A. map() B. await C. promise (pas un mot-clé, mais un concept) C. mousemove D. defer (attribut HTML, pas JavaScript) D. keypress (lié au clavier) 7. (CM) Lesquelles de ces méthodes d’Array retournent un nouveau tableau ? A. map() 16. (CM) Lesquelles de ces méthodes ne modifient pas le B. filter() tableau original ? C. concat() D. sort() (modifie l’existant) A. map() 8. (CM) Quelles fonctionnalités sont apportées par ES6 B. filter() (ES2015) ? A. Classes B. Arrow functions C. sort() (modifie sur place) C. Generators D. slice() D. Async/await (introduit ES2017) 9. (CM) Dans une fonction génératrice, on peut : A. Utiliser yield plusieurs fois 17. (CM) Dans une fonction fléchée, on peut utiliser : A. B. Utiliser return pour terminer C. Appeler next() en dehors pour avancer Des paramètres rest (x,...others) =>... D. Définir super() (non, c’est dans une classe) B. Un retour implicite quand on n’utilise pas d’accolades 10. (CM) Quelles syntaxes du DOM permettent d’écouter un événement ? C. Le mot-clé this qui fait référence à l’objet global A. element.addEventListener("click", fn) D. Aucun return explicite si on place le bloc entre { } (ce bloc nécessite return) B. element.onclick = fn C. document.on("click", fn) (pas standard) 18. (CM) En JavaScript, l’asynchronisme peut être géré D. element.addListener("click", fn) (pas standard) par : A. Les callbacks 12. (CM) Dans un générateur, que peuvent faire les méthodes B. Les promesses next(), throw(), et return() ? C. async/await A. next() fait progresser le générateur jusqu’au prochain yield D. Les IIFE B. throw() lance une exception à l’intérieur du générateur 20. (CM) Lesquels de ces event.preventDefault() et event.stopPropagation() sont corrects ? C. return() termine le générateur A. preventDefault() annule l’action par défaut (ex: D. return() émet une dernière valeur dans le flux suivre un lien) B. stopPropagation() arrête la phase de bouillonnement ou de capture C. stopPropagation() annule aussi l’action par défaut 14. (CM) Les méthodes d’array suivantes créent toujours un nouveau tableau : D. preventDefault() arrête la propagation de l’événement A. map() B. filter() 21. (CM) Lesquels de ces événements sont C. slice() déclenchés sur un en saisie ? D. forEach() A. input (à chaque modification) B. change (quand le champ perd le focus ou qu’on 15. (CM) Lesquels de ces événements du DOM sont liés à la souris valide la modif) ? A. click C. keyup (lorsqu’on relâche la touche) B. wheel D. dblclick (lié à la souris, pas au clavier) B. L’élément courant n’est pas l’initiateur de l’événement 22. (CM) Lesquels de ces objets DOM sont des collections dynamiques (se mettent à jour si le DOM change) ? C. event.target est toujours identique à event.currentTarget A. document.getElementsByTagName("div") (HTMLCollection dynamique) D. event.stopPropagation() a été appelé B. document.querySelectorAll("div") (NodeList statique) C. element.children (HTMLCollection dynamique) 30. (CM) Lesquels de ces prototypes sont natifs en JavaScript ? D. element.childNodes (NodeList souvent live selon l’implémentation, mais pas toujours) A. Object.prototype B. Array.prototype 23. (CM) Lesquelles de ces méthodes de tableau prennent un C. String.prototype callback (element, index, array) ? A. map() D. Number.prototype B. filter() 32. (CM) Dans un générateur, yield* someIterable signifie : C. reduce() (prend (acc, val, idx, arr)) A. On délègue l’itération à someIterable D. forEach() B. On attend que someIterable émette une 26. (CM) Les fonctions fléchées ont la particularité de : promesse A. Ne pas avoir de this propre (héritage lexical) C. On renvoie un tableau B. Ne pas avoir de arguments D. On fusionne deux générateurs en un C. Pouvoir être appelées via new pour faire des instances 34. (CM) Pour transformer une liste d’arguments en tableau dans une fonction classique, on peut : D. Être toujours asynchrones A. Array.prototype.slice.call(arguments) B. Array.from(arguments) 27. (CM) Dans le DOM, pour créer et insérer un nouveau dans une , on peut : C. [...arguments] A. document.createElement("li") D. arguments.toArray() (n’existe pas) B. ul.appendChild(li) C. ul.innerHTML += "" (possible, mais réécrit tout l’intérieur) 35. (CM) Lesquelles de ces syntaxes peuvent créer une fonction auto-invoquée ? D. ul.addChild("li") (n’existe pas) A. (function() {... })(); B. (function named() {... }()); 28. (CM) Lesquels de ces éléments sont typiquement “falsy” en JavaScript ? C. +function() {... }(); A. 0 D. ()=>{... }(); (besoin de parenthèses ( () => {...} )();) B. NaN C. "" (chaîne vide) 36. (CM) Lesquelles de ces opérations DOM sont D. null possibles ? A. parentNode.removeChild(childNode); 29. (CM) Dans un événement DOM, event.target et B. element.appendChild(newChild); event.currentTarget peuvent différer quand : C. element.cloneNode(true); A. On a un mécanisme de bouillonnement (un enfant a déclenché l’événement, le parent l’a écouté) D. element.unappendChild(child) (n’existe pas) 37. (CM) Lesquels de ces arguments la fonction callback de reduce() C. Un NodeList (depuis ES6, NodeList est itérable peut-elle recevoir ? dans la plupart des navigateurs modernes) A. accumulateur D. Un objet littéral { a: 1, b: 2 } (non, pas itérable par défaut) B. valeurCourante C. index 44. (CM) Lesquels de ces événements se produisent lors D. tableau du cycle de vie d’une page Web côté navigateur ? A. DOMContentLoaded (DOM prêt) 38. (CM) Dans une fonction fléchée, on peut faire : B. load (tout est chargé, images, etc.) A. (a, b) => a + b C. unload ou beforeunload (fermeture de la page) B. () => { const x = 1; return x; } D. ready (non standard, sauf jQuery) C. (a = 0) => a * 2 D. (a, b,...rest) => rest.length 49. (CM) Lesquels de ces événements sont liés à la gestion de formulaires ? 39. (CM) Lesquels de ces objets sont disponibles dans un script ESM côté navigateur ? A. submit (quand on valide le formulaire) A. window B. reset (quand on réinitialise le formulaire) C. change (quand un champ change de valeur et perd le B. document focus) C. process (côté Node.js, pas navigateur) D. hover (pas un événement standard, c’est mouseover D. console / mouseout) 40. (CM) Quels sont des exemples d’événements DOM liés au 50. (CM) Lesquelles de ces méthodes d’un tableau clavier ? JS retournent une valeur unique plutôt qu’un nouveau tableau ? A. keydown A. reduce() B. keyup B. find() C. keypress (moins utilisé, mais existe) C. includes() D. focus (lié au focus, pas au clavier) D. map() (retourne un tableau) 52. (CM) Lesquels de ces objets existent en 41. (CM) Dans le DOM, pour cibler un élément par son id, on JavaScript Vanille (natif) ? peut : A. Math A. document.getElementById("id") B. JSON B. document.querySelector("#id") C. window (dans navigateur) C. document.querySelectorAll("#id") (renvoie un NodeList, potentiellement d’un seul élément) D. fs (Node.js) D. element.getId("id") (n’existe pas) 55. (CM) Dans le DOM, element.innerHTML = "..." : A. Remplace tout le contenu HTML de l’élément 42. (CM) Lesquels de ces objets supportent la syntaxe B. Supporte le code HTML pour l’affichage d’itération for...of ? C. Est dangereux si on met du HTML non maîtrisé (risque A. Un Array XSS) B. Un Map D. Ne modifie pas le DOM visuellement D. Définir async sur n’importe quel bloc de code 56. (CM) Lesquels de ces appels renvoient un objet Promise en JavaScript moderne ? 64. (CM) Lesquels de ces éléments font partie du A. fetch("url") cycle de vie des événements DOM ? A. Phase de B. async function x() {} (appeler x() retourne une promise) capture C. new Promise((resolve, reject) => {}) B. Phase de ciblage (target) D. setTimeout(fn, 1000) (ne renvoie pas de promise nativement) C. Phase de bouillonnement D. Phase d’arrêt complet (pas un terme officiel) 57. (CM) Dans une fonction fléchée, (a => a * 2)(5) : A. Renvoie 10 65. (CM) Lesquelles de ces méthodes sont B. Est une IIFE fléchée disponibles pour parcourir un NodeList ? A. forEach() (depuis les specs modernes) C. Retourne undefined B. map() (non, pas sur un NodeList standard) D. Nécessite des accolades C. [...NodeList] (spread possible si l’environnement est compatible) 58. (CM) Lesquels de ces objets font partie de l’API DOM standard ? D. for (const node of NodeList) (itération possible) A. Event 67. (CM) Lesquels de ces objets JavaScript sont nativement itérables ? B. Element A. String (chaque caractère) C. Node B. Array D. FileSystem (API non standard, dépend d’implémentations) C. Map 61. (CM) Lesquelles de ces méthodes de tableau ne retournent D. Object (non, pas itérable par défaut) aucun nouveau tableau ? A. forEach() (retourne undefined) B. sort() (modifie sur place et retourne le tableau modifié) 68. (CM) Lesquels de ces événements se C. push() (retourne la nouvelle longueur) déclenchent sur un élément input lors D. splice() (retourne les éléments supprimés) d’interactions utilisateur ? A. focus / blur B. input (tapez au clavier) 62. (CM) Dans le DOM, element.parentElement : C. change (perte de focus ou validation) A. Renvoie l’élément parent direct (ou null) D. mouseenter (lié à la souris, pas le clavier) B. Renvoie toujours document 71. (CM) Dans le DOM, quelles méthodes insèrent réellement un nœud dans la page ? C. Est différent de element.parentNode si le parent est un nœud non-élément A. appendChild() D. Retourne une HTMLCollection B. insertBefore() C. replaceChild() 63. (CM) Dans une fonction async, on peut : D. newChild = document.createElement("div") (crée seulement l’élément, ne l’insère pas) A. Utiliser le mot-clé await 72. (CM) Lesquels de ces éléments sont nécessaires B. Retourner directement une valeur, qui sera pour propager un événement DOM jusqu’à un englobée dans une promesse résolue parent ? C. Gérer les erreurs avec try...catch A. Que l’événement soit “bubblable” B. Que stopPropagation() ne soit pas appelé C. value (pour un ) C. Que preventDefault() ne soit pas appelé (n’arrête pas la D. style (ajoutera un style inline) propagation, juste l’action) 83. (CM) Lesquelles de ces méthodes de tableau D. Que le parent écoute l’événement dans la phase de modifient le tableau existant ? bouillonnement A. splice() 74. (CM) Lesquels de ces frameworks/bibliothèques utilisent massivement JavaScript Vanille + DOM ? B. sort() A. jQuery (manipule le DOM) C. reverse() B. React (DOM virtuel) D. map() (crée un nouveau tableau) C. Vue.js (DOM virtuel, templates) D. Angular (framework complet, DOM virtuel aussi, binding) 84. (CM) Dans un générateur, generator.return("fin") 76. (CM) Lesquelles de ces méthodes de table peuvent retourner un : booléen ? A. Termine le générateur avec { value: "fin", done: A. some() true } B. every() B. Continue l’itération si on appelle next() après C. includes() C. Provoque une exception D. map() (retourne un tableau) D. On peut le relancer en appelant generator.next() (non, c’est terminé) 77. (CM) Lors d’un click sur un , quel est l’ordre d’appel (si on a 3 écouteurs) ? A. Par défaut, tous les écouteurs sur le même élément sont appelés 85. (CM) Dans le DOM, quels éléments peuvent dans l’ordre où ils ont été ajoutés déclencher un événement focus ? B. L’ordre peut être modifié en passant { once: true } A. Les champs de formulaire (input, textarea, select) C. Le bouillonnement arrive après avoir exécuté les écouteurs du B. Les éléments avec tabindex bouton lui-même C. Les non focusables par défaut (sauf si tabindex) D. L’événement s’arrête si un des écouteurs appelle stopPropagation() D. Les (non focusables par défaut) 78. (CM) Lesquels de ces scénarios illustrent une IIFE ? A. (function() {... })(); 86. (CM) Lesquels de ces scripts “auto-invoqués” sont B. (function named(){... })(); corrects ? C. (async function(){... })(); (IIFE asynchrone possible) A. (function named() {... }()); D. function(){... }() (invalide seul, il faut mettre (function(){...})()) B. +function() {... }(); 80. (CM) Lesquels de ces événements DOM sont déclenchés quand C. void function(){... }(); on survole un élément ? D. () => {... }(); (il faut ( () => {...} )();) A. mouseover B. mouseenter C. mouseout (quand on quitte l’élément) 87. (CM) Dans le DOM, pour récupérer tous les d’un , on peut : D. hover (pas un événement standard, c’est CSS)