0% ont trouvé ce document utile (0 vote)
10 vues28 pages

Java Script

Ce document est un examen blanc de préparation pour un examen de mi-temps en 2025, comprenant des questions à choix unique et à choix multiples sur des concepts de JavaScript. Les questions portent sur des sujets tels que la déclaration de variables, les méthodes de tableau, la gestion des erreurs, et les promesses. L'examen teste les connaissances des participants sur les fonctionnalités et les syntaxes de JavaScript.

Transféré par

ayoublouraoui4
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues28 pages

Java Script

Ce document est un examen blanc de préparation pour un examen de mi-temps en 2025, comprenant des questions à choix unique et à choix multiples sur des concepts de JavaScript. Les questions portent sur des sujets tels que la déclaration de variables, les méthodes de tableau, la gestion des erreurs, et les promesses. L'examen teste les connaissances des participants sur les fonctionnalités et les syntaxes de JavaScript.

Transféré par

ayoublouraoui4
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 28

Examen blanc : Préparation au mi-temps

2025

Partie 1 : QCM à Choix Unique (50 questions) B. parseFloat()


C. Number()
1. Quel mot-clé permet de déclarer une variable D. Math.floor()
accessible uniquement dans le bloc où elle est
définie ? 9. Quel est le résultat de '5' + 3 ?
A. var A. 8
B. let B. 53
C. const C. NaN
D. function D. Lève une erreur

2. Quelle méthode permet de transformer un 10. Quelle structure permet de gérer les erreurs
tableau en chaîne de caractères en insérant un avec un bloc d’exécution et un bloc de
séparateur ? récupération ?
A. split() A. if / else
B. join() B. try / catch
C. concat() C. switch / case
D. reduce() D. throw / return

3. Que retourne typeof null en JavaScript ? 11. Quel mot-clé est utilisé pour stopper
A. "null" entièrement une boucle for ?
B. "undefined" A. stop
C. "object" B. exit
D. "string" C. break
D. return
4. Comment s’appelle la phase où JavaScript
prépare les déclarations de variables et de 12. Que fait Array.prototype.map() ?
fonctions en mémoire avant l’exécution ? A. Il modifie le tableau d’origine.
A. Héritage B. Il renvoie un nouveau tableau transformé.
B. Initialisation C. Il efface le contenu du tableau.
C. Hoisting D. Il trie le tableau.
D. Instanciation
13. Quelle est la portée d’une variable déclarée
5. Quelle est la valeur de NaN === NaN ? avec var dans une fonction ?
A. true A. Portée bloc
B. false B. Portée globale
C. Lève une erreur C. Portée de fonction
D. undefined D. Portée script uniquement

6. Quelle méthode ajoute un ou plusieurs 14. Quelle est la sortie de console.log(2 == '2') ?
éléments à la fin d’un tableau ? A. true
A. push() B. false
B. pop() C. undefined
C. unshift() D. Erreur de type
D. shift()
15. Dans une fonction fléchée, que représente this
7. Lequel de ces types n’existe pas en JavaScript ?
? A. L’objet global (window en navigateur)
A. number B. Le contexte courant
B. boolean C. L’instance de la fonction
C. symbol D. Il n’existe pas de this dans les fonctions
D. double fléchées

8. Quelle méthode est utilisée pour convertir une 16. Quelle est la valeur par défaut de arguments
chaîne en nombre entier ? dans une fonction fléchée ?
A. parseInt() A. Un tableau vide
B. Tous les arguments passés 26. Quel est l’événement déclenché quand la page
C. undefined a fini de se charger en HTML ?
D. Les fonctions fléchées n’ont pas arguments A. onload
B. DOMContentLoaded
17. Que retourne typeof [] ? C. loadend
A. "array" D. ready
B. "object"
C. "[]" 27. Quel opérateur compare et convertit
D. "undefined" éventuellement les types avant comparaison ?
A. ===
18. Quelle méthode permet de vérifier si un B. !==
tableau contient un élément ? C. ==
A. Array.includes() D. =
B. Array.has()
C. Array.find() 28. Quelle méthode convertit un objet JavaScript
D. Array.match() en JSON ?
A. JSON.parse()
19. Que renvoie false == 0 ? B. JSON.stringify()
A. true C. obj.toString()
B. false D. String()
C. undefined
D. Lève une erreur 29. Dans quelle portée vit une variable déclarée
avec let dans un bloc if ?
20. Quelle méthode supprime le dernier élément A. Portée globale
d’un tableau et le renvoie ? B. Portée de fonction
A. push() C. Portée du bloc if
B. pop() D. Portée de script
C. shift()
D. splice() 30. Comment se nomme la syntaxe suivante :
(...args) => {} ?
21. Quelle syntaxe permet de déstructurer un A. Fonction classique
objet ? B. Fonction anonyme
A. let { nom } = objet; C. Fonction fléchée (arrow function)
B. let [ nom ] = objet; D. Méthode d’un objet
C. let ( nom ) = objet;
D. let <nom> = objet; 31. Quelle méthode array renvoie le premier
élément qui satisfait une condition ?
22. Comment déclarer une constante en A. filter()
JavaScript ? B. find()
A. var CONSTANT C. includes()
B. let constant D. forEach()
C. const constant
D. CONST constant 32. Quel objet global représente l’API de la
console en JavaScript ?
23. Quel est le résultat de typeof NaN ? A. console
A. "number" B. log
B. "NaN" C. window.consoleAPI
C. "undefined" D. debug
D. "object"
33. Quelle est la sortie de Boolean([]) ?
24. Que fait la méthode A. false
String.prototype.slice(start, end) ? B. true
A. Supprime une partie de la chaîne C. Lève une erreur
B. Renvoie une sous-chaîne entre start et end D. null
(exclu)
C. Convertit la chaîne en tableau 34. Comment définit-on une propriété d’un objet
D. Découpe la chaîne en mots en utilisant la notation littérale ?
A. let obj = { nom: "Alice" };
25. Qu’est-ce qui n’est pas une structure de B. let obj = Object(nom: "Alice");
données native en JavaScript ? C. let obj = (nom = "Alice");
A. Map D. obj.nom = "Alice";
B. Set
C. WeakMap 35. Que fait la méthode Array.prototype.forEach() ?
D. List A. Renvoie un nouveau tableau
B. Exécute une fonction sur chaque élément sans A. promise.stack()
retourner de résultat B. promise.next()
C. Filtre les éléments selon une condition C. promise.then()
D. Casse la boucle dès qu’une condition est D. promise.link()
remplie
44. Comment nomme-t-on une fonction passée en
36. Comment générer un entier aléatoire entre 0 et paramètre à une autre fonction ?
9 inclus ? A. Fonction dynamique
A. Math.random() * 10 B. Fonction callback
B. Math.floor(Math.random() * 10) C. Fonction flechée
C. Math.floor(Math.random() * 9) D. Fonction asynchrone
D. Math.ceil(Math.random() * 9)
45. Quelle méthode JSON convertit une chaîne
37. Quelle propriété d’un objet Error en JavaScript JSON en objet JavaScript ?
contient le message d’erreur ? A. JSON.stringify()
A. Error.text B. JSON.parse()
B. Error.message C. JSON.format()
C. Error.info D. JSON.decode()
D. Error.description
46. Quelle syntaxe ES6 permet d’importer une
38. Quelle est la bonne façon de déclarer une exportation par défaut ?
classe en JavaScript (ES6) ? A. import { default } from "module";
A. function ClassName {} B. import default from "module";
B. class ClassName {} C. import * from "module";
C. var ClassName = class {} D. import something from "module";
D. create class ClassName {}
47. Que renvoie typeof function(){} ?
39. Que renvoie isNaN("Hello") ? A. "function"
A. true B. "object"
B. false C. "function object"
C. Lève une erreur D. "undefined"
D. "Hello"
48. Lequel de ces opérateurs est utilisé pour la
40. Quel mot-clé permet de sortir d’une fonction et décomposition d’un tableau en arguments de
éventuellement de renvoyer une valeur ? fonction ?
A. break A. ...
B. stop B. ::
C. return C. >>
D. exit D. ??

41. Quelle syntaxe pour déclarer un module ES ? 49. Que fait l’opérateur ?? (nullish coalescing) ?
A. <script type="text/javascript"> A. Compare strictement deux valeurs
B. <script type="module"> B. Retourne la valeur de droite si la valeur de
C. <script module> gauche est null ou undefined
D. <module> C. Effectue la fusion de deux objets
D. Vérifie si la valeur est strictement null
42. Quelle est la sortie de console.log(typeof
undefined) ? 50. Que se passe-t-il si on appelle une fonction
A. "object" avant sa déclaration avec function
B. "null" maFonction(){} ?
C. "undefined" A. Erreur de référence
D. "string" B. La fonction est hoistée, donc accessible
C. La fonction est ignorée
43. Quelle méthode permet de chainer des D. Le code plante uniquement en mode strict
promesses de façon séquentielle ?
Partie 2 : QCM à Choix Multiples (50 questions)
Attention : Ici, plusieurs réponses peuvent être correctes. C. push()
D. pop()
1. Quelles sont les méthodes qui modifient
directement le tableau initial ? 2. Quelles valeurs sont considérées comme falsy
A. map() en JavaScript ?
B. splice() A. false
B. 0
C. null C. !==
D. undefined D. !=

3. Lesquels de ces opérateurs sont des 12. Lesquelles de ces méthodes sont disponibles
opérateurs logiques ? sur un objet Promise ?
A. && A. .then()
B. || B. .catch()
C. === C. .all()
D. ! D. .finally()

4. Lesquels de ces objets sont des objets globaux 13. Lesquels de ces mots-clés sont utilisés pour
du navigateur ? définir une classe et un constructeur ES6 ?
A. window A. class
B. document B. function
C. console C. constructor
D. NodeList D. extends

5. Lesquelles de ces syntaxes créent un tableau 14. Lesquelles de ces valeurs sont évaluées à true
vide ? en contexte booléen ?
A. const arr = []; A. '0' (string)
B. const arr = new Array(); B. [] (tableau vide)
C. const arr = {}; C. null
D. const arr = [null]; D. {} (objet vide)

6. Quels mots-clés permettent de déclarer des 15. Lesquels de ces objets sont utilisables pour
variables en ES6 ? effectuer des requêtes HTTP en JavaScript
A. var (côté navigateur) ?
B. let A. XMLHttpRequest
C. const B. fetch
D. function C. axios (librairie externe)
D. Response
7. Lesquels de ces types sont des types primitifs
en JavaScript ? 16. Dans quels cas this fait référence à l’objet
A. string global en mode non strict ?
B. number A. Dans une fonction classique appelée sans
C. boolean contexte
D. object B. Dans une fonction fléchée
C. Dans un événement DOM sur un élément
8. Quels sont les deux paramètres de base de la D. Dans une fonction de rappel (callback)
fonction exécuteur d’une promesse ? attachée à un objet
A. resolve
B. reject 17. Lesquelles de ces méthodes peuvent être
C. success utilisées pour itérer sur un tableau sans
D. error modifier l’original ?
A. forEach()
9. Lesquelles de ces boucles existent en B. map()
JavaScript ? C. reduce()
A. for D. splice()
B. for...in
C. for...of 18. Quels sont les éléments du modèle de
D. foreach programmation asynchrone en JavaScript ?
A. Event Loop
10. Quels événements sont liés aux clics de souris B. Call Stack
? C. Promise Queue
A. click D. Heap
B. dblclick
C. contextmenu 19. Lesquels de ces opérateurs sont spécifiques à
D. mouseover ES2020 et ES2021 ?
A. ** (exponentiation)
11. Quels opérateurs comparent strictement sans B. ?? (nullish coalescing)
conversion de type ? C. ?. (optional chaining)
A. == D. :: (inexistant standard)
B. ===
20. Lesquels de ces objets sont des collections 29. Lesquels de ces statements contrôlent le flux
introduites en ES6 ? conditionnel ?
A. Map A. if / else
B. Set B. switch / case
C. WeakMap C. for / while
D. WeakSet D. throw / catch

21. Lesquels de ces mots-clés sont des 30. Lesquelles de ces méthodes peuvent ajouter
instructions de saut ? des éléments à un tableau ?
A. break A. push()
B. continue B. unshift()
C. exit C. concat()
D. return D. slice()

22. Lesquelles de ces lignes sont correctes pour 31. Lesquels de ces mots-clés JavaScript sont liés
convertir une chaîne en nombre ? à la programmation orientée objet (ES6) ?
A. Number("42") A. class
B. parseInt("42") B. extends
C. "42" * 1 C. super
D. toInteger("42") D. prototype

23. Quels objets permettent de stocker des paires 32. Lesquels de ces objets sont des constructeurs
clé-valeur ? natifs en JavaScript ?
A. Object A. Array
B. Map B. Object
C. WeakSet C. Function
D. WeakMap D. React

24. Lesquelles de ces syntaxes sont valides pour 33. Lesquelles de ces méthodes peuvent
une fonction fléchée ? transformer un tableau en chaîne de
A. () => {} caractères ?
B. (x) => x * 2 A. join()
C. (x, y) => { return x + y } B. toString()
D. x => { x * 2 } (piège : manque le return) C. pop()
D. toLocaleString()
25. Lesquels de ces éléments sont utilisés pour la
gestion des modules en JavaScript ? 34. Lesquels de ces mots-clés gèrent
A. import l’asynchronisme par promesses ?
B. require (CommonJS côté Node.js) A. async
C. export B. await
D. module.exports (CommonJS) C. then
D. sync
26. Lesquels de ces types de données sont
immuables ? 35. Lesquels de ces éléments sont nécessaires
A. string pour écouter un événement en DOM ?
B. boolean A. Élément cible
C. object B. Type d’événement (ex: click)
D. number C. Gestionnaire de rappel (callback)
D. return
27. Dans un try...catch, que se passe-t-il si le try ne
lève aucune exception ? 36. Lesquels de ces types de boucles permettent
A. Le catch est ignoré de parcourir un tableau directement ?
B. Le catch est exécuté quand même A. for
C. Le code se poursuit normalement B. for...in (plutôt pour objets)
D. Une erreur est levée si aucun finally C. for...of
D. while
28. Lesquels de ces événements JavaScript sont
liés au clavier ? 37. Lesquels de ces éléments sont spécifiques aux
A. keydown classes en ES6 ?
B. keypress A. Constructeur constructor
C. keyup B. Méthodes statiques static
D. onload C. Héritage via extends
D. Héritage multiple natif
38. Lesquels de ces frameworks ou bibliothèques C. document
sont basés sur JavaScript (hors Node.js) ? D. JSON
A. React
B. Angular 45. Quelles syntaxes sont valides pour déclarer
C. Vue.js une fonction nommée ?
D. Django A. function maFonction() {}
B. maFonction = () => {} (variable ou fonction
39. Lesquels de ces mots-clés sont valides pour la fléchée)
déclaration d’une variable en ES5 et ES6 ? C. function() => {} (invalide)
A. var (ES5) D. let maFonction = function(){}
B. let (ES6)
C. const (ES6) 46. Lesquels de ces aspects concernent la
D. final “portée” (scope) en JavaScript ?
A. Portée globale
40. Lesquelles de ces méthodes sont utilisées B. Portée de bloc avec let
pour parcourir un tableau et peuvent renvoyer C. Portée de fonction avec var
un nouveau tableau ? D. Portée d’objet
A. map()
B. filter() 47. Lesquelles de ces syntaxes permettent de faire
C. reduce() (retourne une valeur unique) un commentaire en JavaScript ?
D. forEach() (ne renvoie pas de nouveau tableau) A. // commentaire
B. /* commentaire */
41. Lesquels de ces opérateurs comparent en C. <!-- commentaire --> (plutôt HTML)
incluant une conversion de type ? D. # commentaire (style de commentaire en
A. == Python)
B. ===
C. != 48. Lesquels de ces éléments peuvent être passés
D. !== comme paramètres à une fonction ?
A. Des nombres
42. Lesquels de ces objets appartiennent à l’API B. Des chaînes
Web Storage ? C. Des objets
A. sessionStorage D. D’autres fonctions
B. localStorage
C. cookieStorage (n’existe pas) 49. Lesquelles de ces méthodes peuvent trier un
D. indexedDB (API de stockage, mais différent) tableau ?
A. sort()
43. Quels éléments de syntaxe permettent d’écrire B. reverse() (inverse l’ordre, pas un tri
une chaîne multi-ligne ? sémantique)
A. Backticks (templates strings) `` B.\ndans une C. order() (inexistant)
chaîne simple C."""triple-quote (inexistant en JS) D. localeCompare() (méthode de string, pas
D.+` pour concaténer d’array)

44. Lesquels de ces objets sont natifs du moteur 50. Quels mécanismes permettent la gestion
JavaScript (ECMAScript) et non spécifiques au asynchrone en JavaScript ?
DOM ? A. Callbacks
A. Math B. Promises
B. Date C. Async/await
D. Threads multiples par défaut

Partie 3 : 100 Questions à Choix Unique


1. (CU) Dans une fonction fléchée, quelle est la B. (function() { ... })();
valeur de this ? C. (() => { ... })();
A. Dépend du contexte d’appel D. auto function() { ... }
B. Hérite du this englobant
C. Toujours l’objet global 3. (CU) Lequel de ces mots-clés est utilisé pour
D. Inexistant, lève une erreur marquer une fonction asynchrone ?
A. await
2. (CU) Quelle syntaxe permet de définir une B. async
fonction auto-invoquée (IIFE) ? C. defer
A. function() { ... }(); D. promise
4. (CU) Comment appelle-t-on la fonction une fonction ?
spéciale qui s’exécute avant toute chose A. L’opérateur spread ...
lorsqu’on utilise CommonJS dans Node.js ? B. La méthode apply()
A. La fonction main() C. L’opérateur rest ...
B. Le module require() D. La déstructuration de tableau
C. L’IIFE implicite du module
D. La méthode init() 13. (CU) Dans quel cas peut-on utiliser le mot-clé
await ?
5. (CU) Dans un générateur, quel mot-clé permet A. Dans n’importe quelle fonction
d’émettre une valeur et de mettre la fonction B. Uniquement dans une fonction marquée async
en pause ? C. Dans un bloc if
A. yield D. Dans une fonction fléchée classique
B. return
C. break 14. (CU) Quelle est la sortie de la fonction fléchée
D. async (() => 42)() ?
A. undefined
6. (CU) Quelle propriété d’un objet Promise B. 42
indique son état courant (pending, fulfilled, ou C. Erreur de syntaxe
rejected) ? D. Objet Promise
A. status
B. state 15. (CU) Quel est le mot-clé propre au format ESM
C. Il n’existe pas de propriété publique pour ça pour exporter plusieurs membres nommés ?
D. result A. exports = ...
B. module.exports = ...
7. (CU) Dans un module ES (ESM), comment C. export { ... }
déclare-t-on un export par défaut ? D. default export
A. export = ...
B. module.exports = ... 16. (CU) Pour gérer des actions asynchrones
C. export default ... successives, laquelle de ces syntaxes est la
D. exports.default = ... plus moderne ?
A. Les callbacks imbriqués
8. (CU) Quelle méthode de l’Array est utilisée B. Les promesses chaînées
pour vérifier si tous les éléments satisfont une C. L’utilisation de async/await
condition ? D. L’utilisation de setTimeout
A. every()
B. some() 17. (CU) Dans une IIFE, les variables déclarées
C. filter() avec var sont :
D. all() A. Globales
B. Accessibles uniquement dans la fonction IIFE
9. (CU) Comment appelle-t-on la version C. Inexistantes, c’est interdit
minimaliste de JavaScript sans framework ? D. Converties en let
A. ES6 JS
B. Vanilla JS 18. (CU) Quel est l’effet de return dans une
C. Pure JS fonction génératrice ?
D. Node JS A. Émet une dernière valeur et continue
B. Termine immédiatement le générateur
10. (CU) Quelle méthode de l’Array est utilisée C. Passe à l’instruction yield suivante
pour aplatir un tableau de tableaux en D. Provoque une erreur
profondeur 1 par défaut ?
A. flat() 19. (CU) Dans un module CommonJS, comment
B. reduce() définir un export principal ?
C. flatten() A. exports = something
D. spread() B. module.exports = something
C. export default something
11. (CU) Quel mot-clé CommonJS permet D. require.exports = something
d’importer un module dans un fichier Node.js ?
A. import 20. (CU) Comment appellerait-on un concept pour
B. include lier un module ESM dans un navigateur ?
C. require A. <script type="module">
D. use B. <script module="esm">
C. <script type="javascript-module">
12. (CU) Comment appelle-t-on la fonctionnalité D. <script esmodule>
qui propage les arguments d’un tableau dans
21. (CU) Quelle méthode peut transformer un C. Fonction fléchée
tableau en un seul résultat (accumulateur) ? D. Fonction génératrice
A. some()
B. reduce() 30. (CU) Dans un générateur, quel mot-clé permet
C. every() de recevoir une valeur depuis l’extérieur ?
D. map() A. external
B. yield
22. (CU) Une fonction auto-invoquée (IIFE) a pour C. next()
but principal de : D. Le paramètre value de la fonction génératrice
A. Déclarer un module ESM
B. Éviter la pollution de l’espace global 31. (CU) Dans un module ES, comment importer la
C. Empêcher toute réutilisation de la fonction totalité des exports nommés dans un objet ?
D. Remplacer une fonction fléchée A. import { * } from "module";
B. import * as Mod from "module";
23. (CU) Lequel n’est pas un mot-clé permettant la C. require("module").all
déstructuration ? D. import all from "module";
A. let { x } = obj;
B. let [ y ] = arr; 32. (CU) L’utilisation de return dans une méthode
C. const { z } = obj; d’array comme forEach() est :
D. unpack { a } = obj; A. Possible pour sauter au prochain élément
B. Ignorée par la méthode forEach()
24. (CU) Dans un async function, que retourne par C. Termine la boucle
défaut un appel à cette fonction ? D. Change la valeur de this
A. Une promesse
B. Un générateur 33. (CU) Dans une fonction fléchée, si on ne met
C. Le résultat brut de la fonction pas d’accolades et on écrit () => 42, que se
D. Un tableau passe-t-il ?
A. La fonction renvoie toujours undefined
25. (CU) Dans un générateur, l’objet retourné par B. La fonction renvoie la valeur 42
generator.next() contient : C. La fonction ne compile pas
A. Un champ value et un champ done D. On obtient un objet Promise
B. Toujours un champ error
C. Un champ result et un champ finished 34. (CU) Quel est le nom du module standard de
D. Un champ await Node.js pour manipuler les chemins de fichier
?
26. (CU) Lequel de ces exports ESM est valide ? A. file
A. export function maFonction() {} B. fs
B. export var x = 10; C. path
C. exports.x = 10; D. url
D. export default class {}
35. (CU) Dans un script ES Module côté navigateur,
27. (CU) Que fait la méthode si on utilise import, à quel moment le module
Array.prototype.some() ? est chargé ?
A. Teste si au moins un élément satisfait la A. Dès que le script est lu, de façon asynchrone
condition B. Après l’événement DOMContentLoaded
B. Transforme chaque élément pour en faire un C. Uniquement quand la page est entièrement
nouvel array chargée
C. Vérifie si tous les éléments satisfont une D. Jamais sans attribut defer
condition
D. Filtre les éléments 36. (CU) Quelle méthode de l’Array invoque une
fonction pour chaque élément et accumule un
28. (CU) Quelle syntaxe de déclaration est seul résultat final ?
spécifique à CommonJS ? A. reduce()
A. import ... from ... B. map()
B. export default ... C. every()
C. module.exports = ... D. some()
D. export const x = ...
37. (CU) Le mot-clé yield* dans un générateur sert
29. (CU) Dans une IIFE, comment appelle-t-on la à:
portion (function() { ... }) sans les () finaux ? A. Déclencher une erreur de syntaxe
A. Expression de fonction anonyme B. Déléguer à un autre générateur ou itérable
B. Déclaration de fonction globale C. Forcer la fermeture du générateur
D. Émettre une valeur et stopper la fonction
38. (CU) Dans un module CommonJS, __filename éléments ?
et __dirname représentent : A. true
A. Le nom et le dossier du fichier courant B. false
B. Les variables d’environnement C. Un nouveau tableau filtré
C. Des alias pour fs D. Une exception en cas de faux
D. N’existent pas, c’est ESM seulement
47. (CU) Dans un script JavaScript Vanilla, la
39. (CU) Quelle est la principale différence entre variable globale est placée dans :
map() et forEach() ? A. globalThis
A. map() modifie le tableau original B. window (dans le navigateur)
B. map() renvoie un nouveau tableau, forEach() C. global (dans Node.js)
ne retourne rien D. document
C. forEach() est plus rapide
D. forEach() autorise le break 48. (CU) Qu’arrive-t-il si on appelle deux fois de
suite generator.return("Fin") ?
40. (CU) Quel est le bon nom pour la fonction auto- A. Le générateur reprend son exécution
invoquée suivante : +function(){ B. La première fois termine le générateur, la
console.log("test"); }() ? seconde n’a plus d’effet
A. IIFE C. Le générateur renvoie deux valeurs
B. Arrow function D. Ça lève une erreur
C. Promise chain
D. Classe anonyme 49. (CU) Dans le format CommonJS, quel objet
contient les exports nommés ?
41. (CU) Que se passe-t-il si l’on utilise await en A. export
dehors d’une fonction asynchrone (sans B. exports
transpilation particulière) ? C. module.export
A. Ça fonctionne en mode strict D. module.defaults
B. On obtient une erreur de syntaxe
C. On obtient undefined 50. (CU) Quelle méthode d’Array renvoie le premier
D. L’exécution est bloquée index correspondant à l’élément cherché ?
A. findIndex()
42. (CU) Dans un générateur, yield peut : B. indexOf()
A. Renvoyer une valeur au next() appelant C. search()
B. Émettre des erreurs D. includes() (retourne vrai/faux, pas un index)
C. Changer la valeur de this
D. Être omis si on ne veut rien retourner 51. (CU) Dans l’écosystème Node.js, l’usage de
require (CommonJS) est remplacé au profit de :
43. (CU) Quel fichier ou champ précise l’entrée de A. import (ESM)
module principal dans un package Node.js ? B. importScripts
A. .npmrc C. loadModule
B. index.json D. module.import
C. La propriété "main" dans package.json
D. module.config 52. (CU) Qu’arrive-t-il quand on fait return dans un
générateur ?
44. (CU) Dans une fonction fléchée, le mot-clé A. On ajoute une valeur émise avant de continuer
arguments : B. Le générateur se termine immédiatement
A. Se réfère à la liste des arguments C. On peut relancer le générateur par next()
B. Est inexistant (lèvera une erreur si utilisé D. On déclenche une exception
directement)
C. Contient un objet de type array 53. (CU) Quelle option n’existe pas dans la syntaxe
D. Est un alias pour rest d’import ESM ?
A. import * as mod from "module";
45. (CU) Lequel n’est pas un type de module B. import defaultMember from "module";
reconnu nativement en JavaScript ? C. import { namedMember } from "module";
A. CommonJS D. import = require("module")
B. ESM
C. AMD (Asynchronous Module Definition) dans 54. (CU) Les fonctions fléchées :
l’environnement Node.js sans loader spécifique A. Ont leur propre this
D. UMD B. Héritent du this lexical
C. Sont toujours asynchrones
46. (CU) Lors de l’utilisation de D. Ne peuvent pas être nommées
Array.prototype.every(), quel résultat indique
que la condition est vraie pour tous les 55. (CU) La fonction auto-invoquée (IIFE) suivante :
(function(x){ console.log(x); })(5);
A. Affiche 5 C. generator.input = value
B. Provoque une erreur D. On ne peut pas transmettre de valeur
C. Renvoie undefined en console
D. Est équivalente à une fonction fléchée 64. (CU) Quelle syntaxe utilise-t-on pour déclarer
un module ESM côté Node.js (dans un
56. (CU) Dans un async function, que renvoie la package.json) ?
ligne return 10; ? A. "type": "module"
A. 10 directement B. "esm": true
B. Une promesse résolue avec la valeur 10 C. "modules": "import"
C. Une promesse rejetée D. "moduleType": "ES6"
D. Une valeur undefined
65. (CU) Sur quelle méthode d’Array se base-t-on
57. (CU) Pour itérer sur un générateur gen, on pour vérifier si au moins un élément remplit
utilise : une condition ?
A. gen.run() A. find()
B. gen.call() B. some()
C. gen.next() C. map()
D. gen.continue() D. every()

58. (CU) En CommonJS, si on veut exporter 66. (CU) Comment appelle-t-on la syntaxe
plusieurs choses, on peut faire : (function(){ ... })() dans la documentation ?
A. exports.obj = { ... }; exports.func = function(){}; A. Arrow expression
B. module.exports = { obj: ..., func: ... }; B. IIFE (Immediately Invoked Function Expression)
C. export default { obj, func }; C. Async closure
D. module.exportMany(...) D. Module pattern

59. (CU) La méthode Array.prototype.reduce() 67. (CU) Dans une fonction async, utiliser throw
prend combien de paramètres pour la fonction new Error("...") :
de rappel ? A. Rejette la promesse retournée
A. 1 (l’élément courant) B. Résout la promesse avec un objet Error
B. 2 (l’accumulateur et l’élément courant) C. Interrompt l’exécution sans effet sur la
C. 4 (accumulateur, valeur courante, index, promesse
tableau) D. Génère un warning sans stopper l’exécution
D. 3 (accumulateur, valeur courante, tableau)
68. (CU) Pour collecter tous les exports d’un
60. (CU) Comment s’appelle le “style” d’écriture module ESM dans un objet, on écrit :
JavaScript sans framework, ni librairie A. import * from "module"
spécifique ? B. import * as obj from "module"
A. Node.js core C. import { ...all } from "module"
B. ES6 standard D. import { default as obj } from "module"
C. Vanilla JS
D. Pure ECMAScript 69. (CU) Array.prototype.every() retourne true si :
A. Au moins un élément satisfait la condition
61. (CU) Quelle clause permet de capturer une B. Tous les éléments satisfont la condition
erreur dans un bloc try ? C. Aucun élément ne satisfait la condition
A. catch D. Le tableau est vide
B. error
C. finally 70. (CU) La forme (function myIIFE(){ ... }()) est :
D. rescue A. Une fonction nommée IIFE
B. Impossible, lève une erreur
62. (CU) Dans une fonction fléchée à un seul C. Un module ESM
paramètre, que peut-on omettre ? D. Un alias de la fonction fléchée
A. Les parenthèses autour du paramètre
B. Le mot-clé function 71. (CU) Dans une fonction fléchée () => ({ x: 1 }), à
C. Le return si on met des accolades quoi servent les parenthèses autour du bloc {
D. Les accolades si on renvoie directement une x: 1 } ?
valeur A. À retourner un objet littéral
B. À créer un bloc de code vide
63. (CU) Dans un générateur, comment C. À ignorer la valeur
transmettre une valeur externe lors de l’appel D. À activer le mode strict
next() ?
A. generator.send(value) 72. (CU) Quel est le cycle de vie d’un générateur ?
B. generator.next(value) A. start -> run -> complete -> restart
B. suspendedStart -> executing ->
suspendedYield -> completed B. window.maIIFE = (function(){...})(); (en
C. Il ne peut jamais compléter navigateur)
D. pending -> fulfilled -> rejected C. export IIFE
D. module.exports = IIFE
73. (CU) Dans Node.js, comment activer l’ESM
sans package.json "type": "module" ? 82. (CU) Dans un générateur, appeler deux fois
A. Utiliser l’extension .mjs next() de suite sans yield entre-temps :
B. Mettre "moduleMode": true A. Fait avancer deux fois la machine d’état
C. Passer un flag --commonjs B. Lève une exception
D. On ne peut pas C. Met le générateur en pause
D. Donne toujours done: true
74. (CU) Quelle méthode d’Array coupe un tableau
en plusieurs morceaux qu’elle retourne 83. (CU) Que fait la méthode Object.freeze(obj) ?
comme sous-tableaux ? A. Rend les propriétés de obj modifiables
A. slice() uniquement en lecture
B. splice() B. Transforme obj en null
C. split() (non, c’est string) C. Rend obj immuable (pas de modifications
D. Il n’y a pas de méthode native possibles)
D. Copie obj dans un nouvel objet
75. (CU) Dans une IIFE, pour exposer certaines
fonctionnalités, on utilise souvent : 84. (CU) Dans un script ESM, import "./module.js";
A. Un return d’un objet public sans accolades ni nom :
B. Un window.myGlobal = ... A. Importe le module par défaut
C. module.exports B. N’importe rien, mais exécute le fichier
D. export default module.js
C. Est invalide en ES
76. (CU) Dans un async function, quand on fait D. Importe tous les exports nommés
return await X;, c’est équivalent à :
A. return X; (sauf si on veut capturer l’erreur) 85. (CU) La méthode Array.prototype.every() :
B. throw X; A. Retourne true si tous les éléments passent le
C. return Promise.all([X]); test
D. return new Promise(X); B. Retourne un nouveau tableau
C. Se termine dès qu’un élément échoue au test
77. (CU) Dans un générateur, la forme yield* D. Lance une exception si le test échoue
autreGenerateur() signifie :
A. Qu’on concatène les valeurs des deux 86. (CU) Comment appelle-t-on l’opérateur ... dans
générateurs (a, b, ...rest) => {} ?
B. Qu’on délègue l’itération à autreGenerateur() A. Spread operator
C. Qu’on exécute en parallèle deux générateurs B. Rest parameter
D. Qu’on crée un objet Promise C. Template operator
D. Destructuring operator
78. (CU) CommonJS est le format de modules
historique de : 87. (CU) Lorsqu’une fonction génératrice est
A. Node.js “complétée”, generator.next() renvoie :
B. Les navigateurs A. { value: undefined, done: true }
C. ECMAScript 2015 B. Un objet Promise
D. AMD C. Une erreur StopIteration
D. { value: null, done: false }
79. (CU) array.reduce((acc, val) => acc + val, 0) fait :
A. La somme des éléments du tableau 88. (CU) CommonJS supporte quel type d’import ?
B. La concaténation des éléments A. import ... from "..."
C. Filtre les éléments nuls B. require("...")
D. Crée un objet C. import { ... }
D. module import
80. (CU) Quelle expression fléchée ne renvoie pas
undefined par défaut ? 89. (CU) Sur un tableau [10, 20, 30],
A. () => { 42 } myArray.some(x => x > 15) renvoie :
B. () => 42 A. true
C. (x) => { x + 1 } B. false
D. () => { return } C. undefined
D. Erreur
81. (CU) Dans une IIFE, comment rendre la
fonction disponible globalement ? 90. (CU) L’IIFE (function namedIIFE() { ... }()) se
A. var maIIFE = function(){...}() différencie de (function() { ... })() par :
A. Le fait qu’elle a un nom local qu’on peut A. () => { key: "value" }
appeler en récursif B. () => ({ key: "value" })
B. Une syntaxe non valide en JS C. () => "key": "value"
C. Une exécution bloquante D. function => { key: "value" }
D. Une portée globale
96. (CU) (() => { console.log("Hello"); })() est un
91. (CU) Dans async function x() { return "ok"; }, x() exemple de :
renvoie : A. Fonction auto-invoquée fléchée
A. Une promesse résolue avec "ok" B. IIFE standard
B. La chaîne "ok" directement C. Module ESM
C. Une erreur D. Méthode asynchrone
D. Un générateur
97. (CU) Une fonction async peut contenir :
92. (CU) Que fait la méthode A. Des mots-clés await
generator.throw(error) ? B. Des boucles for, while
A. Lance une exception depuis le générateur à C. Des instructions return
l’endroit du dernier yield D. Un objet Promise implicite
B. Redémarre le générateur depuis le début
C. Met le générateur en pause 98. (CU) Dans un générateur, comment récupérer
D. Transforme l’erreur en warning la valeur finale après return ?
A. Par generator.value
93. (CU) Dans un module CommonJS, B. Par generator.returnValue
require.cache contient : C. Via l’objet { value, done } de next()
A. Les données chargées depuis les modules D. On ne peut pas la récupérer
B. Les chemins de modules résolus
C. Les modules déjà chargés pour éviter de les 99. (CU) Lequel n’est pas un export valide en ESM ?
recharger A. export const MY_VAR = 42;
D. Un tampon vide B. export function doStuff() {}
C. export default function() {}
94. (CU) array.reduce((acc, val) => acc + val) sans D. module.export = ...
second argument :
A. Utilise 0 comme accumulateur initial 100. (CU) Dans l’écosystème JavaScript, “Vanilla
B. Utilise le premier élément comme JS” signifie :
accumulateur initial A. Un nouveau framework minimaliste
C. Lève une erreur B. Du JavaScript natif sans librairie tierce
D. Utilise null comme accumulateur C. Du code Node.js
D. Une architecture React custom
95. (CU) Dans une fonction fléchée, comment
renvoyer un objet littéral ?
Partie 4 : 20 Questions à Choix Unique (suite)

(Toujours 1 seule bonne réponse, niveau plus avancé/varié.)


1. (CU) Quelle syntaxe de déstructuration permet C. Réalise un reduce() en combinant les éléments
de renommer une variable en l’extrayant ? D. Décompose un objet en plusieurs tableaux
A. const { prop: alias } = obj;
B. const [ alias : prop ] = arr; 4. (CU) Dans une fonction fléchée, (() => this)()
C. const { rename = prop } = obj; renvoie :
D. alias = obj.prop; A. L’objet global en mode non strict
B. undefined
2. (CU) Que signifie l’opérateur ?. (optional C. Le this lexical englobant
chaining) ? D. Un objet Promise
A. Permet d’enchaîner des appels de fonction de
manière synchrone 5. (CU) Dans un module ES, la directive export *
B. Évite les erreurs si une propriété est null ou from "./autre.js"; :
undefined A. Importe d’abord tout de autre.js puis l’exporte
C. Convertit un nombre en entier B. Doit être suivie d’une liste de membres
D. Compare deux objets C. N’est pas autorisée
D. Implémente un alias
3. (CU) Que fait Array.prototype.flatMap() ?
A. Combine map() puis flat() à une profondeur de 6. (CU) L’utilisation de await Promise.all([...])
1 dans une fonction async sert à :
B. Tri le tableau avant d’appliquer map() A. Exécuter les promesses en séquentiel
B. Exécuter les promesses en parallèle et B. Locale au bloc IIFE
attendre la fin de toutes C. Écrase la variable x si elle existait en dehors
C. Cloner plusieurs objets D. Propriété de window.x obligatoirement
D. Lancer une unique promesse
16. (CU) Dans un async function, comment gérer
7. (CU) Dans le standard ECMAScript, les une erreur de promesse rejetée ?
générateurs ont été introduits en : A. Avec un bloc try...catch
A. ES5 B. Avec promise.onError(...)
B. ES6 (ES2015) C. Impossible, la fonction se termine sans faute
C. ES7 (ES2016) D. En remplaçant return par throw
D. ES8 (ES2017)
17. (CU) Dans une fonction génératrice function*
8. (CU) module.exports est spécifique à : g() { yield 1; return 2; }, quel est le dernier value
A. ESM émis ?
B. AMD A. 1
C. CommonJS B. 2
D. UMD C. Aucun, return ne fait pas partie de la séquence
des yield
9. (CU) Array.prototype.map() : D. Erreur
A. Transforme chaque élément et renvoie un
nouveau tableau 18. (CU) CommonJS a historiquement été créé
B. Filtre les éléments nuls pour :
C. Retourne un objet itérateur A. Les navigateurs avant ES6
D. Modifie le tableau initial B. Node.js
C. Les modules AMD
10. (CU) Comment appeler une fonction auto- D. Le Java côté serveur
invoquée fléchée ?
A. ( => console.log("test") )(); 19. (CU) Array.prototype.every() retourne false si :
B. (() => { console.log("test"); })(); A. Tous les éléments valident le test
C. auto=>{...}(); B. Un seul élément ne valide pas le test
D. invoke(()=>{...}); C. Le tableau est vide
D. On n’a pas de callback
11. (CU) Dans une fonction génératrice, function*
gen() { yield 1; yield 2; }, que renvoie gen().next() 20. (CU) Les fonctions fléchées sont
? particulièrement utiles pour :
A. { value: undefined, done: false } A. Fournir un this dynamique
B. { value: 1, done: false } B. Simplifier l’écriture de callbacks
C. { value: 1, done: true } C. Générer des classes
D. { done: true } D. Remplacer async/await

12. (CU) En ESM, comment importer un export par 21. Dans le DOM, quelle méthode renvoie le premier
défaut et d’autres membres nommés ? élément correspondant à un sélecteur CSS ?
A. import default, { named1, named2 } from A. document.getElementById()
"module"; B. document.querySelector()
B. import { default, named } from "module"; C. document.querySelectorAll()
C. import default, named from "module"; D. document.getElementsByClassName()
D. import default * from "module";
22. Dans un document HTML, la propriété
13. (CU) Array.prototype.some() renvoie true document.body fait référence :
quand : A. À l’élément <head>
A. Tous les éléments passent le test B. À l’élément <html>
B. Au moins un élément passe le test C. À l’élément <body>
C. Aucun élément ne passe le test D. À tous les éléments <div>
D. Le tableau est vide
23. Quelle est la bonne syntaxe pour ajouter un
14. (CU) (() => 42)() retourne : écouteur d’événement “click” sur un bouton en
A. 42 JavaScript Vanilla ?
B. undefined A. button.addListener("click", function() { ... });
C. Une Promise B. button.on("click", function() { ... });
D. Un générateur C. button.addEventListener("click", function() { ... });
D. addEvent(button, "click", fn);
15. (CU) Dans une IIFE, var x = 10;, que devient x
après exécution ? 24. (CU) Dans une page HTML, le DOM est entièrement
A. Global si on n’est pas en mode strict chargé. Quel événement du document peut-on écouter
pour exécuter du code après le parsing initial du HTML 32. (CU)Dans les événements DOM, l’objet
? event.target pointe vers :
A. load A. L’élément sur lequel l’écouteur a été attaché
B. DOMContentLoaded B. L’élément qui a réellement déclenché l’événement
C. onready C. L’objet global document
D. beforeunload D. La fenêtre window

25. (CU)Dans un script JavaScript, l’accès à 33. (CU)Quelle propriété du DOM permet de lire ou
document.querySelectorAll("p") renvoie : modifier le code HTML interne d’un élément ?
A. Un tableau standard A. element.innerHTML
B. Un objet NodeList B. element.value
C. Une HTMLCollection C. element.textContent
D. Une exception si le sélecteur est multiple D. element.htmlContent

26. (CU)Quelle méthode du DOM insère un nouvel 34. (CU)Dans un document,


élément en tant qu’enfant à la fin d’un nœud parent ? document.documentElement correspond
A. parent.replaceChild(newNode, oldNode) généralement :
B. parent.appendChild(newNode) A. À l’élément <body>
C. parent.insertAdjacentHTML("beforeend", newNode) B. À l’élément <head>
D. parent.addChild(newNode) C. À l’élément <html>
D. À la racine du DOM, qui n’existe plus en HTML5
27. (CU)Dans un gestionnaire d’événements DOM, le
paramètre généralement nommé event fait référence à 35. (CU)Pour enregistrer une fonction qui s’exécute
: avant que la fenêtre ne se ferme (ex. un
A. Une chaîne contenant le type d’événement avertissement), on 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. N’existe pas en JavaScript Vanilla D. window.exit

28. (CU)Dans le DOM, element.style.backgroundColor 36. (CU)Dans un navigateur moderne, si on veut


= "red"; : exécuter un code lorsque l’utilisateur clique n’importe
A. Modifie le style inline du composant où dans la fenêtre, on peut :
B. Lance une exception car background-color est A. document.onGlobalClick = fn;
invalide B. window.addEventListener("click", fn);
C. Modifie le fichier CSS externe C. document.windowClick(fn);
D. Ne fait rien, car les propriétés CSS sont en lecture D. document.event("click", fn);
seule
37. (CU)Comment récupérer le contenu texte (sans
29. (CU) HTML) d’un élément DOM ?
A. element.innerHTML
Pour empêcher la propagation d’un événement vers B. element.textContent
les éléments parents, on utilise : C. element.htmlText
A. event.preventDefault() D. element.value
B. event.stopPropagation()
C. event.cancel()
D. event.defaultPrevented = true
38. (CU)Dans le DOM, querySelector("div > p")
30. (CU) recherche :
A. Tous les paragraphes de la page
Dans le DOM, element.classList.add("active") : B. Le premier <p> descendant direct d’un <div>
A. Ajoute la classe active à l’attribut class de l’élément C. Le premier <p> dans un <div> même profondément
B. Remplace toutes les classes existantes D. Soulève une exception si plusieurs <p> sont trouvés
C. Ajoute un style en ligne “class: active;”
D. Efface d’abord toutes les classes, puis ajoute active 39. (CU)Laquelle de ces propriétés DOM n’existe pas ?
A. element.id
31. (CU) B. element.className
C. element.nodeName
En JavaScript Vanilla, quelle méthode du DOM
D. element.motherNode
supprime un nœud enfant d’un parent ?
A. parent.remove(child) 40. (CU)Quelle est la valeur de document.readyState
B. child.remove() lorsque la page est entièrement chargée ?
C. parent.removeChild(child) A. "ready"
D. child.delete() B. "complete"
C. "loaded" 48. (CU)Dans le DOM, element.setAttribute("style",
D. "interactive" "color: red"); :
A. Ajoute ou modifie l’attribut style en définissant la
41. (CU) couleur rouge
B. Ne fonctionne que si l’élément est un <style>
Dans une fonction fléchée, si on souhaite retourner un
C. Lance une erreur si l’attribut n’existe pas
objet littéral, on doit :
D. Enlève tous les styles sauf “color:red”
A. Mettre l’objet entre parentheses : () => ({ a: 1 })
B. Mettre l’objet après return : () => return { a: 1 } 49. (CU)
C. On ne peut pas retourner d’objets littéraux en fléché
D. Mettre l’objet en string JSON Une fonction fléchée ne peut pas être utilisée comme
méthode d’un objet si :
42. (CU) A. On a besoin de this pour faire référence à l’objet
B. L’objet est déclaré en const
Lequel de ces attributs script permet de charger un
C. Elle est déclarée en mode strict
module ECMAScript ?
D. On y passe des paramètres rest
A. type="application/js-module"
B. type="module" 50. (CU)Dans un script ESM, import x from
C. module="true" "./module.js"; signifie :
D. defer="module" A. On importe l’export par défaut nommé x depuis
module.js
43. (CU)
B. On importe un export nommé x
Dans un module CommonJS, require est : C. On importe tous les exports dans un objet x
A. Une fonction synchrone qui charge un module et D. On importe la propriété x du window.module
renvoie ses exports
51. (CU)Dans une boucle for...of, on peut itérer sur :
B. Une fonction asynchrone renvoyant une promesse
A. Un NodeList
C. Un mot-clé ECMAScript officiel
B. Un tableau ([])
D. Inexistant, on doit utiliser import
C. Un objet littéral {}
44. (CU) D. Une chaîne de caractères

Pour itérer sur les propriétés énumérables d’un objet 52. (CU)
en JavaScript, on utilise :
Pour créer un nœud texte dans le DOM, on utilise :
A. for...of
A. document.createTextNode("du texte")
B. for...in
B. new Text("du texte")
C. Object.forEach()
C. document.innerText = "du texte"
D. obj.traverse()
D. document.makeText("du texte")
45. (CU)Dans un contexte Node.js, si on veut exporter
53. (CU)Comment annuler l’action par défaut (ex: suivi
plusieurs éléments dans un module CommonJS, on
du lien) dans un gestionnaire d’événement DOM ?
peut faire :
A. event.stopPropagation()
A. module.exports = { fonction1, fonction2 };
B. event.preventDefault()
B. exports.fonction1 = ...; exports.fonction2 = ...;
C. return false (fonctionne partiellement dans jQuery,
C. export { fonction1, fonction2 }
pas standard)
D. module.importAll = { ... }
D. event.cancelBubble = true
46. (CU)Une fonction auto-invoquée (IIFE) est souvent
utilisée pour :
A. Déclarer des variables globales persistantes 54. (CU)Dans un module CommonJS, la variable qui
B. Éviter la pollution de l’espace global et isoler un référence l’objet d’exports est :
scope A. module.exports
C. Gérer l’asynchronisme avec await B. export default
D. Charger un module ESM C. this.exports
D. Common.exports
47. (CU)Comment définit-on une fonction génératrice
? 55. (CU)Une fonction fléchée “courte” s’écrit :
A. function gen() { yield ... } A. () -> 42
B. function* gen() { ... } B. ( => 42 )
C. generate function() { ... } C. () => 42
D. (function()*) { yield ... } D. {} => { return 42 }

56. (CU)Dans un générateur, pour émettre des valeurs


successives, on utilise :
A. yield à chaque fois C. <script module="true" src="fichier.js"></script>
B. await à chaque fois D. <script src="fichier.mjs"></script> (possible, mais
C. this.value = ... sans type="module", pas un ESM)
D. generator.push(...)
66. (CU)L’événement "submit" se déclenche sur :
57. (CU)Dans un contexte Node.js en CommonJS, la A. Un bouton <button>
variable __dirname correspond : B. Un formulaire <form>
A. Au répertoire dans lequel Node.js est installé C. Tout élément pouvant être cliqué
B. Au répertoire courant du fichier en exécution D. Le document tout entier
C. À la racine du projet
D. Au répertoire node_modules 67. (CU)Dans un IIFE, la variable déclarée avec var x =
10; n’est accessible qu’à l’intérieur de :
58. (CU)Dans le DOM, A. L’IIFE
document.getElementById("monId") renvoie : B. Toutes les fonctions du même fichier
A. Une NodeList C. L’objet window.x
B. Le premier élément avec l’attribut name="monId" D. Aucune, c’est illégal en mode strict
C. L’élément ayant l’ID "monId", ou null si introuvable
D. Toujours un objet non-null, même s’il n’existe pas 68. (CU)Une fonction fléchée ne possède pas de
propriété prototype. Quelle conséquence cela a-t-il ?
59. (CU)Lors d’un événement DOM, l’ordre de A. On ne peut pas l’utiliser avec new pour instancier un
propagation est : objet
A. Ciblage -> capture -> bouillonnement B. Elle hérite des prototypes globaux
B. Capture -> ciblage -> bouillonnement C. Elle doit être déclarée en mode strict
C. Bouillonnement -> ciblage -> capture D. On doit la déclarer en var
D. Capture -> bouillonnement -> ciblage
69. (CU)Quelle méthode du DOM efface tout le
60. (CU)Pour éviter la fermeture d’un générateur après contenu HTML d’un élément ?
un return, on : A. element.remove()
A. Ne peut rien faire, return termine forcément B. element.innerHTML = "";
B. Utilise yield return C. element.textContent = "";
C. Utilise throw D. element.removeChildAll()
D. On place un yield après le return
70. (CU)En CommonJS, si on assigne directement
61. (CU)import * as MyModule from "./fichier.js"; : exports = { ... }, cela a pour effet :
A. Importe tous les exports nommés dans un objet A. De modifier l’export par défaut
MyModule B. De redéfinir la référence exports, sans modifier
B. Importe l’export par défaut sous le nom MyModule module.exports
C. Importe tout (y compris le Node.js core) C. D’écraser module.exports
D. N’est pas une syntaxe valide D. D’ajouter un nouveau champ

62. (CU)Dans le DOM, un objet Event possède la 71. (CU)


propriété type qui indique :
A. Le type de l’élément ciblé Un générateur s’utilise en JavaScript principalement
B. Le type de l’événement (ex: "click") pour :
C. La classe CSS en cours A. Gérer l’asynchronisme plus simplement qu’avec
D. La nature de la propagation async/await
B. Produire des valeurs à la demande (itération
63. (CU)Pour transformer un NodeList en vrai tableau, paresseuse)
on peut utiliser : C. Forcer un code synchrone
A. Array.from(NodeList) D. Éviter les blocages d’exécution
B. [...NodeList] (opérateur spread)
C. NodeList.slice() 72. (CU)
D. NodeList.toArray()
(function test(){ ... })() :
64. (CU)Dans une fonction fléchée, this est : A. Est une IIFE nommée, on peut s’y référer
A. Lexical, c’est-à-dire hérité du scope parent récursivement dans le code interne
B. Dynamique selon l’appel B. Crée une variable globale test
C. Toujours undefined C. Lève une erreur si on veut l’appeler de l’extérieur
D. Équivalent à arguments.callee D. Transforme test en variable locale du fichier

65. (CU)Un module ESM dans le navigateur se déclare 73. (CU)


via :
Dans le DOM, document.createElement("p") :
A. <script type="module" src="fichier.js"></script>
A. Crée un élément paragraphe, non encore inséré
B. <module src="fichier.js"></module>
dans la page A. Implícite
B. Ajoute directement l’élément <p> dans <body> B. Impossible, la fonction renvoie undefined
C. Renvoie null si <p> existe déjà C. Automatique seulement si a est un nombre
D. Lève une exception si <p> n’existe pas D. Nécessite return a * 2;

74. (CU) 83. (CU)Lorsqu’on définit un module ESM dans un


fichier .mjs côté Node.js :
Une fonction fléchée avec (...args) => {} signifie : A. Node le lit comme un module ES
A. On collecte tous les arguments dans un tableau args B. Node le lit en CommonJS
B. On applique le spread operator C. Node le rejette automatiquement
C. On destructure un tableau [args] D. On doit le transpiler avec Babel
D. Erreur de syntaxe
84. (CU)L’événement "change" sur un champ texte
75. (CU)Dans un module ES, la syntaxe import { <input type="text"> se déclenche :
something as alias } from "mod"; fait : A. À chaque frappe
A. Importe la variable alias depuis something B. Quand on perd le focus après avoir modifié la valeur
B. Importe something sous un autre nom alias C. Jamais en JavaScript Vanilla
C. Fait un rename local something -> alias D. Seulement si on utilise un <select>
D. Lève une erreur s’il y a déjà un export par défaut
85. (CU)Un générateur en JavaScript renvoie un objet :
76. (CU)L’événement "keyup" se produit : A. Iterator
A. Quand on appuie sur une touche B. AsyncIterator
B. Quand on relâche une touche C. Promise
C. Quand la touche est maintenue D. Observable
D. Au clic de la souris
86. (CU)(() => { console.log("Salut"); })() :
77. (CU)Dans le DOM, element.children renvoie : A. Affiche “Salut” immédiatement (IIFE fléchée)
A. Une collection HTML des enfants éléments (pas les B. Ne s’exécute pas, c’est une erreur de syntaxe
nœuds texte) C. Retourne toujours un booléen
B. Un tableau complet de tous les nœuds D. Se lance au chargement de la page
C. null si l’élément n’a pas de <li>
D. Une NodeList statique 87. (CU)Dans un contexte Node.js, comment activer
l’export ESM dans un package.json ?
78. (CU)Pour empêcher l’exécution par défaut d’un A. "modules": true
lien <a> lors d’un click, on fait : B. "type": "module"
A. event.returnValue = false; C. "esm": "on"
B. event.preventDefault(); D. "ecmaVersion": 2020
C. window.location = "#"
D. event.stopPropagation();

79. (CU)Dans un générateur, yield* est appelé “yield 88. (CU)Dans le DOM, la propriété nodeType d’un
delegate”. Cela signifie : nœud permet de :
A. On délègue l’itération à un autre itérable ou un autre A. Savoir si c’est un élément, un texte, un
générateur commentaire, etc.
B. On double la valeur du yield B. Modifier la classe CSS
C. On arrête la boucle C. Obtenir la valeur du type d’un <input>
D. On effectue du recouvrement d’exception D. Charger un module ESM

80. (CU)En CommonJS, pour importer un module local,


on écrit :
A. import "./localModule.js"; 89. (CU)Lorsque event.stopPropagation() est appelé
B. require("./localModule.js"); dans un listener :
C. module.import("./localModule"); A. L’action par défaut est annulée
D. load "./localModule"; B. La phase de bouillonnement (ou capture) ne se
propage plus
81. (CU)Comment sélectionner tous les éléments <p> C. L’événement est supprimé
dans le DOM avec querySelectorAll ? D. Les autres événements identiques sur l’élément
A. document.querySelectorAll("p") sont bloqués
B. document.queryAll("p")
C. document.query("p", true) 90. (CU)Dans une fonction fléchée, (a, b) => a + b, si on
D. document.getElementsBy("p") invoque (2, 3), on obtient :
A. 5
82. (CU)Dans une fonction fléchée, si on omet les B. undefined
accolades et on écrit (a) => a * 2;, le return est :
C. Une promesse résolue B. Un seul export par défaut
D. Un itérateur C. Zéro, un ou plusieurs exports nommés
D. Plusieurs export default
91. (CU)En CommonJS, si vous faites const
monModule = require("./module"), comment accéder à 96. (CU)Dans le DOM, element.firstChild renvoie :
un export nommé truc ? A. Le premier nœud enfant (texte ou élément)
A. monModule.truc B. Le premier élément enfant
B. truc C. Toujours null si ce n’est pas un <div>
C. module.truc D. NodeList
D. exports.truc
97. (CU)Pour “consommer” un générateur jusqu’au
92. (CU)Si une fonction génératrice a émis toutes ses bout, on peut utiliser :
valeurs, l’appel suivant à next() renvoie : A. Une boucle while(!gen.done)
A. { value: undefined, done: true } B. Une boucle for...of sur le générateur
B. NaN C. gen.consumeAll()
C. Une erreur StopIteration D. Promise.resolve(gen)
D. { done: false }
98. (CU)Une IIFE fléchée s’écrit :
A. () => ()
B. (=>{})()
93. (CU) C. (() => { /* code */ })()
D. (() => { /* code */ }[])()
Dans le DOM,
element.insertAdjacentHTML("afterbegin", 99. (CU)En Node.js (CommonJS), __filename
"<span>Hello</span>") : représente :
A. Insère le HTML juste avant l’élément A. Le chemin absolu du fichier en cours d’exécution
B. Insère le HTML juste après l’élément B. Le dossier du fichier
C. Insère le HTML comme premier enfant de l’élément C. Toujours "index.js"
D. Insère en dernier enfant de l’élément D. Le chemin relatif à package.json

94. (CU)À l’intérieur d’une fonction fléchée, le mot-clé 100. (CU)Dans le DOM,
arguments : document.createElement("script") :
A. Fonctionne comme dans une fonction classique A. Ajoute un <script> dans la page directement
B. Est non défini (inexistant) B. Crée un élément <script> qu’on doit encore attacher
C. Correspond au tableau des paramètres rest au DOM
D. Pointeur vers le global C. Ne fonctionne qu’avec type="module"
D. Lance l’exécution du script immédiatement
95. (CU)Un module ESM peut avoir :
A. Plusieurs exports nommés

Partie 3 : 100 Questions à Choix Multiples


(Plusieurs réponses correctes possibles)

1. (CM) Quelles syntaxes sont valides pour créer C. CommonJS est standard ECMAScript, ESM non
une IIFE ? D. ESM supporte import/export, CommonJS
A. (function() { ... })(); utilise module.exports
B. (() => { ... })();
C. function iife() { ... } iife(); 4. (CM) Les méthodes d’Array qui ne modifient
D. function() { ... }() (invalide seul) pas le tableau original sont :
A. map()
2. (CM) Dans un générateur, quelles instructions B. filter()
peuvent coexister ? C. slice()
A. yield D. pop()
B. return
C. break 5. (CM) Lesquelles de ces syntaxes concernent
D. yield* une fonction fléchée ?
A. const f = () => {};
3. (CM) Quelles sont les différences entre B. (x) => x * 2
CommonJS et ESM ? C. function => { ... } (invalide)
A. CommonJS utilise require, ESM utilise import D. () => ({ a: 1 })
B. CommonJS charge de façon synchrone, ESM
peut charger de façon asynchrone
6. (CM) Lesquels de ces mots-clés sont liés à B. Ils utilisent module.exports ou exports pour exporter
l’asynchronisme en JavaScript ?
A. async C. Ils sont nativement supportés par tous les
B. await navigateurs modernes sans build
C. promise (pas un mot-clé, mais un concept)
D. Ils fonctionnent historiquement avec Node.js
D. defer (attribut HTML, pas JavaScript)

7. (CM) Dans l’écosystème Node.js, quelles sont


des solutions de module courantes ? 14. (CM) Les méthodes d’array suivantes créent
A. CommonJS (CJS) toujours un nouveau tableau :
B. ESM
C. AMD (pas nativement pris en charge) A. map()
D. UMD (souvent pour navig. + Node combinés)
B. filter()
8. (CM) Lesquelles de ces méthodes d’Array
C. slice()
retournent un nouveau tableau ?
A. map() D. forEach()
B. filter()
C. concat()
D. sort() (modifie l’existant)
15. (CM) Lesquels de ces événements du DOM sont
9. (CM) Quelles fonctionnalités sont apportées liés à la souris ?
par ES6 (ES2015) ?
A. click
A. Classes
B. Arrow functions B. wheel
C. Generators
D. Async/await (introduit ES2017) C. mousemove

10. (CM) Dans une fonction génératrice, on peut : D. keypress (lié au clavier)
A. Utiliser yield plusieurs fois
B. Utiliser return pour terminer
C. Appeler next() en dehors pour avancer
16. (CM) Lesquelles de ces méthodes ne modifient
D. Définir super() (non, c’est dans une classe)
pas le tableau original ?
11. (CM) Quelles syntaxes du DOM permettent
A. map()
d’écouter un événement ?
B. filter()
A. element.addEventListener("click", fn)
C. sort() (modifie sur place)
B. element.onclick = fn
D. slice()
C. document.on("click", fn) (pas standard)

D. element.addListener("click", fn) (pas standard)


17. (CM) Dans une fonction fléchée, on peut utiliser :

A. Des paramètres rest (x, ...others) => ...


12. (CM) Dans un générateur, que peuvent faire les
méthodes next(), throw(), et return() ? B. Un retour implicite quand on n’utilise pas
d’accolades
A. next() fait progresser le générateur jusqu’au
prochain yield C. Le mot-clé this qui fait référence à l’objet global

B. throw() lance une exception à l’intérieur du D. Aucun return explicite si on place le bloc entre { } (ce
générateur bloc nécessite return)

C. return() termine le générateur

D. return() émet une dernière valeur dans le flux 18. (CM) En JavaScript, l’asynchronisme peut être
géré par :

A. Les callbacks
13. (CM) Les modules CommonJS ont les
caractéristiques suivantes : B. Les promesses

A. Ils utilisent require pour importer C. async/await


D. Les IIFE A. map()

B. filter()

19. (CM) Quelles de ces syntaxes importent des C. reduce() (prend (acc, val, idx, arr))
membres nommés en ESM ?
D. forEach()
A. import { a, b } from "module";

B. import * as M from "module"; (on récupère M.a, M.b,


etc.) 24. (CM) Dans un générateur function* gen() { ... }, on
peut :
C. import defaultExport from "module"; (importe
l’export par défaut) A. Utiliser yield plusieurs fois

D. import all from "module"; (invalide) B. Faire un return pour terminer

C. Gérer les erreurs avec try...catch dans le générateur

20. (CM) Lesquels de ces event.preventDefault() et D. Repartir du début quand on appelle next() (non, on
event.stopPropagation() sont corrects ? reprend où on s’était arrêté)

A. preventDefault() annule l’action par défaut (ex:


suivre un lien)
25. (CM) Lesquels de ces formats de module sont
B. stopPropagation() arrête la phase de historiquement reconnus par le navigateur sans
bouillonnement ou de capture outil supplémentaire ?

C. stopPropagation() annule aussi l’action par défaut A. CommonJS (non, nécessite un bundler ou Node)

D. preventDefault() arrête la propagation de B. ESM (<script type="module">)


l’événement
C. AMD (RequireJS ou loader)

D. IIFE (pas vraiment un “format”, mais le navigateur


21. (CM) Lesquels de ces événements sont comprend le script classique)
déclenchés sur un <input type="text"> en saisie ?

A. input (à chaque modification)


26. (CM) Les fonctions fléchées ont la particularité
B. change (quand le champ perd le focus ou qu’on de :
valide la modif)
A. Ne pas avoir de this propre (héritage lexical)
C. keyup (lorsqu’on relâche la touche)
B. Ne pas avoir de arguments
D. dblclick (lié à la souris, pas au clavier)
C. Pouvoir être appelées via new pour faire des
instances

22. (CM) Lesquels de ces objets DOM sont des D. Être toujours asynchrones
collections dynamiques (se mettent à jour si le DOM
change) ?
27. (CM) Dans le DOM, pour créer et insérer un
A. document.getElementsByTagName("div")
nouveau <li> dans une <ul>, on peut :
(HTMLCollection dynamique)
A. document.createElement("li")
B. document.querySelectorAll("div") (NodeList
statique) B. ul.appendChild(li)

C. element.children (HTMLCollection dynamique) C. ul.innerHTML += "<li></li>" (possible, mais réécrit


tout l’intérieur)
D. element.childNodes (NodeList souvent live selon
l’implémentation, mais pas toujours) D. ul.addChild("li") (n’existe pas)

23. (CM) Lesquelles de ces méthodes de tableau 28. (CM) Lesquels de ces éléments sont
prennent un callback (element, index, array) ? typiquement “falsy” en JavaScript ?
A. 0 B. require.resolve("module") donne le chemin résolu
du module
B. NaN
C. module.exports = ... définit l’export principal
C. "" (chaîne vide)
D. import { ... } from "module"; est la syntaxe par défaut
D. null (non, c’est ES Module)

29. (CM) Dans un événement DOM, event.target et 34. (CM) Pour transformer une liste d’arguments en
event.currentTarget peuvent différer quand : tableau dans une fonction classique, on peut :
A. On a un mécanisme de bouillonnement (un enfant a A. Array.prototype.slice.call(arguments)
déclenché l’événement, le parent l’a écouté)
B. Array.from(arguments)
B. L’élément courant n’est pas l’initiateur de
l’événement C. [...arguments]

C. event.target est toujours identique à D. arguments.toArray() (n’existe pas)


event.currentTarget

D. event.stopPropagation() a été appelé


35. (CM) Lesquelles de ces syntaxes peuvent créer
une fonction auto-invoquée ?

30. (CM) Lesquels de ces prototypes sont natifs en A. (function() { ... })();
JavaScript ?
B. (function named() { ... }());
A. Object.prototype
C. +function() { ... }();
B. Array.prototype
D. ()=>{ ... }(); (besoin de parenthèses ( () => {...} )();)
C. String.prototype

D. Number.prototype
36. (CM) Lesquelles de ces opérations DOM sont
possibles ?

31. (CM) Lesquels de ces import ESM sont corrects ? A. parentNode.removeChild(childNode);

A. import defaultExport from "module"; B. element.appendChild(newChild);

B. import { namedExport } from "module"; C. element.cloneNode(true);

C. import * as bundle from "module"; D. element.unappendChild(child) (n’existe pas)

D. import default as named from "module"; (c’est


import defaultExport, { named } from "module";)
37. (CM) Lesquels de ces arguments la fonction
callback de reduce() peut-elle recevoir ?

32. (CM) Dans un générateur, yield* someIterable A. accumulateur


signifie :
B. valeurCourante
A. On délègue l’itération à someIterable
C. index
B. On attend que someIterable émette une promesse
D. tableau
C. On renvoie un tableau

D. On fusionne deux générateurs en un


38. (CM) Dans une fonction fléchée, on peut faire :

A. (a, b) => a + b
33. (CM) Dans un contexte Node.js (CommonJS) :
B. () => { const x = 1; return x; }
A. require.cache stocke les modules déjà chargés
C. (a = 0) => a * 2

D. (a, b, ...rest) => rest.length


44. (CM) Lesquels de ces événements se produisent
lors du cycle de vie d’une page Web côté navigateur
39. (CM) Lesquels de ces objets sont disponibles ?
dans un script ESM côté navigateur ?
A. DOMContentLoaded (DOM prêt)
A. window
B. load (tout est chargé, images, etc.)
B. document
C. unload ou beforeunload (fermeture de la page)
C. process (côté Node.js, pas navigateur)
D. ready (non standard, sauf jQuery)
D. console

45. (CM) Lesquels de ces opérateurs sont introduits


40. (CM) Quels sont des exemples d’événements dans des versions récentes d’ECMAScript ?
DOM liés au clavier ?
A. ?? (nullish coalescing, ES2020)
A. keydown
B. ?. (optional chaining, ES2020)
B. keyup
C. ** (exponentiation, ES2016)
C. keypress (moins utilisé, mais existe)
D. === (existe depuis ES1)
D. focus (lié au focus, pas au clavier)

46. (CM) Lesquels de ces modes de chargement de


41. (CM) Dans le DOM, pour cibler un élément par script existent côté navigateur ?
son id, on peut :
A. <script src="..." defer>
A. document.getElementById("id")
B. <script src="..." async>
B. document.querySelector("#id")
C. <script type="module">
C. document.querySelectorAll("#id") (renvoie un
NodeList, potentiellement d’un seul élément) D. <script module="true"> (invalide)

D. element.getId("id") (n’existe pas)

47. (CM) Lesquels de ces éléments font partie de


l’objet location dans le DOM ?
42. (CM) Lesquels de ces objets supportent la
syntaxe d’itération for...of ? A. location.href

A. Un Array B. location.reload()

B. Un Map C. location.pathname

C. Un NodeList (depuis ES6, NodeList est itérable dans D. location.document (n’existe pas)
la plupart des navigateurs modernes)

D. Un objet littéral { a: 1, b: 2 } (non, pas itérable par


défaut) 48. (CM) En CommonJS, on peut faire :

A. exports.maFonction = ...;

43. (CM) Dans un générateur, on peut capturer une B. module.exports = { x: 1 };


exception lancée par yield via :
C. import { x } from "module"; (non, c’est ESM)
A. Un try...catch englobant
D. require("module").quelqueChose
B. Le paramètre next(error) (pas standard)

C. La méthode gen.throw(new Error()) depuis


49. (CM) Lesquels de ces événements sont liés à la
l’extérieur
gestion de formulaires ?
D. L’utilisation d’un bloc finally
A. submit (quand on valide le formulaire)

B. reset (quand on réinitialise le formulaire)


C. change (quand un champ change de valeur et perd D. pointerdown, pointerup (nouvelles API pointer)
le focus)

D. hover (pas un événement standard, c’est


mouseover / mouseout) 55. (CM) Dans le DOM, element.innerHTML = "..." :

A. Remplace tout le contenu HTML de l’élément

50. (CM) Lesquelles de ces méthodes d’un tableau B. Supporte le code HTML pour l’affichage
JS retournent une valeur unique plutôt qu’un
C. Est dangereux si on met du HTML non maîtrisé
nouveau tableau ?
(risque XSS)
A. reduce()
D. Ne modifie pas le DOM visuellement
B. find()

C. includes()
56. (CM) Lesquels de ces appels renvoient un objet
D. map() (retourne un tableau) Promise en JavaScript moderne ?

A. fetch("url")

51. (CM) Dans un générateur, on peut utiliser : B. async function x() {} (appeler x() retourne une
promise)
A. yield x
C. new Promise((resolve, reject) => {})
B. yield* autreGenerateur
D. setTimeout(fn, 1000) (ne renvoie pas de promise
C. next(yield 5) (pas la syntaxe habituelle, mais on peut nativement)
faire let val = yield 5;)

D. async yield (n’existe pas tel quel)


57. (CM) Dans une fonction fléchée, (a => a * 2)(5) :

A. Renvoie 10
52. (CM) Lesquels de ces objets existent en
JavaScript Vanille (natif) ? B. Est une IIFE fléchée

A. Math C. Retourne undefined

B. JSON D. Nécessite des accolades

C. window (dans navigateur)

D. fs (Node.js) 58. (CM) Lesquels de ces objets font partie de l’API


DOM standard ?

A. Event
53. (CM) Lesquels de ces attributs sont valides sur
un <script> en HTML ? B. Element

A. src="fichier.js" C. Node

B. type="module" D. FileSystem (API non standard, dépend


d’implémentations)
C. async ou defer

D. commonjs="true" (n’existe pas)


59. (CM) Dans un générateur, generator.next(x)
permet :

54. (CM) Lesquels de ces “events” DOM sont liés à A. De passer la valeur x au dernier yield suspendu
la souris ?
B. De renvoyer une promise
A. click
C. De générer un événement de type x
B. dblclick
D. D’avancer l’itération d’un pas
C. mousedown, mouseup
60. (CM) Lesquels de ces modules sont pris en B. map() (non, pas sur un NodeList standard)
charge par Node.js sans config ?
C. [...NodeList] (spread possible si l’environnement est
A. CommonJS (require()) compatible)

B. ESM (avec "type": "module" ou .mjs) D. for (const node of NodeList) (itération possible)

C. AMD

D. UMD 66. (CM) En CommonJS, pour récupérer des exports


nommés on fait :

A. const mod = require("./mod"); let val = mod.val;


61. (CM) Lesquelles de ces méthodes de tableau ne
retournent aucun nouveau tableau ? B. const { val, func } = require("./mod");
(déstructuration de l’objet exports)
A. forEach() (retourne undefined)
C. import { val } from "./mod"; (non, c’est ESM)
B. sort() (modifie sur place et retourne le tableau
modifié) D. module.importAll("./mod")

C. push() (retourne la nouvelle longueur)

D. splice() (retourne les éléments supprimés) 67. (CM) Lesquels de ces objets JavaScript sont
nativement itérables ?

A. String (chaque caractère)


62. (CM) Dans le DOM, element.parentElement :
B. Array
A. Renvoie l’élément parent direct (ou null)
C. Map
B. Renvoie toujours document
D. Object (non, pas itérable par défaut)
C. Est différent de element.parentNode si le parent est
un nœud non-élément

D. Retourne une HTMLCollection 68. (CM) Lesquels de ces événements se


déclenchent sur un élément input lors
d’interactions utilisateur ?
63. (CM) Dans une fonction async, on peut : A. focus / blur
A. Utiliser le mot-clé await B. input (tapez au clavier)
B. Retourner directement une valeur, qui sera C. change (perte de focus ou validation)
englobée dans une promesse résolue
D. mouseenter (lié à la souris, pas le clavier)
C. Gérer les erreurs avec try...catch

D. Définir async sur n’importe quel bloc de code


69. (CM) Dans un script <script type="module">, on
peut :

64. (CM) Lesquels de ces éléments font partie du A. Importer des modules via import
cycle de vie des événements DOM ?
B. Utiliser await en haut niveau (top-level await,
A. Phase de capture dépend de la version de la spécification)

B. Phase de ciblage (target) C. Appeler require() (non, c’est CommonJS)


C. Phase de bouillonnement D. Accéder à import.meta (informations sur le module
en cours)
D. Phase d’arrêt complet (pas un terme officiel)

70. (CM) Lesquels de ces appels renvoient un


65. (CM) Lesquelles de ces méthodes sont
tableau différent du tableau d’origine ?
disponibles pour parcourir un NodeList ?
A. arr.filter(...)
A. forEach() (depuis les specs modernes)
B. arr.map(...) B. ESM (via "type": "module" ou .mjs)

C. arr.slice(...) C. AMD (non, nécessite RequireJS ou équivalent)

D. arr.sort(...) (modifie en place) D. UMD (pas en natif)

71. (CM) Dans le DOM, quelles méthodes insèrent 76. (CM) Lesquelles de ces méthodes de table
réellement un nœud dans la page ? peuvent retourner un booléen ?

A. appendChild() A. some()

B. insertBefore() B. every()

C. replaceChild() C. includes()

D. newChild = document.createElement("div") (crée D. map() (retourne un tableau)


seulement l’élément, ne l’insère pas)

77. (CM) Lors d’un click sur un <button>, quel est


72. (CM) Lesquels de ces éléments sont nécessaires l’ordre d’appel (si on a 3 écouteurs) ?
pour propager un événement DOM jusqu’à un
parent ? A. Par défaut, tous les écouteurs sur le même élément
sont appelés dans l’ordre où ils ont été ajoutés
A. Que l’événement soit “bubblable”
B. L’ordre peut être modifié en passant { once: true }
B. Que stopPropagation() ne soit pas appelé
C. Le bouillonnement arrive après avoir exécuté les
C. Que preventDefault() ne soit pas appelé (n’arrête écouteurs du bouton lui-même
pas la propagation, juste l’action)
D. L’événement s’arrête si un des écouteurs appelle
D. Que le parent écoute l’événement dans la phase de stopPropagation()
bouillonnement

78. (CM) Lesquels de ces scénarios illustrent une


73. (CM) Lesquels de ces mots-clés/fonctionnalités IIFE ?
sont disponibles dans un générateur ?
A. (function() { ... })();
A. yield
B. (function named(){ ... })();
B. yield*
C. (async function(){ ... })(); (IIFE asynchrone possible)
C. next() (méthode sur l’itérateur, pas un mot-clé dans
la fonction) D. function(){ ... }() (invalide seul, il faut mettre
(function(){...})())
D. async yield (inexistant)

79. (CM) Dans un générateur, qu’est-ce qui


74. (CM) Lesquels de ces frameworks/bibliothèques différencie yield et yield* ?
utilisent massivement JavaScript Vanille + DOM ?
A. yield émet une valeur simple
A. jQuery (manipule le DOM)
B. yield* délègue l’itération à un autre générateur ou
B. React (DOM virtuel) itérable

C. Vue.js (DOM virtuel, templates) C. yield* fusionne deux tableaux

D. Angular (framework complet, DOM virtuel aussi, D. yield attend la fin de l’autre générateur
binding)

80. (CM) Lesquels de ces événements DOM sont


75. (CM) Lesquels de ces formats de module sont déclenchés quand on survole un élément ?
reconnus par Node.js (sans loader tiers) ?
A. mouseover
A. CommonJS (CJS)
B. mouseenter C. Les <div> non focusables par défaut (sauf si
tabindex)
C. mouseout (quand on quitte l’élément)
D. Les <img> (non focusables par défaut)
D. hover (pas un événement standard, c’est CSS)

86. (CM) Lesquels de ces scripts “auto-invoqués”


81. (CM) Lesquels de ces attributs peuvent être sont corrects ?
modifiés via element.setAttribute() ?
A. (function named() { ... }());
A. id
B. +function() { ... }();
B. class
C. void function(){ ... }();
C. value (pour un <input>)
D. () => { ... }(); (il faut ( () => {...} )();)
D. style (ajoutera un style inline)

87. (CM) Dans le DOM, pour récupérer tous les <li>


82. (CM) Lesquelles de ces syntaxes import ESM d’un <ul>, on peut :
sont valides ?
A. document.querySelectorAll("ul li")
A. import defaultExport, { namedA, namedB } from
"module"; B. ul.getElementsByTagName("li")

B. import * as mod from "module"; C. ul.querySelectorAll("li")

C. import { default } from "module"; (mauvaise syntaxe, D. ul.find("li") (n’existe pas en vanilla JS)
c’est import defaultExport from "module")

D. import "module"; (importe et exécute, sans


récupérer d’exports) 88. (CM) Lesquelles de ces fonctions fléchées
retournent explicitement une valeur sans accolades
?

83. (CM) Lesquelles de ces méthodes de tableau A. (x) => x * 2


modifient le tableau existant ?
B. x => { return x * 2 } (retour explicite, mais avec
A. splice() accolades)

B. sort() C. () => ({ a: 1 }) (parenthèses pour l’objet littéral)

C. reverse() D. (x, y) => x + y

D. map() (crée un nouveau tableau)

89. (CM) Lesquels de ces éléments font partie du


“bons usages” du DOM en Vanilla JS ?
84. (CM) Dans un générateur, generator.return("fin")
: A. Sélectionner les éléments
(document.querySelector)
A. Termine le générateur avec { value: "fin", done: true }
B. Ajouter des écouteurs d’événements
B. Continue l’itération si on appelle next() après (element.addEventListener)
C. Provoque une exception C. Manipuler le style (element.style ou classes)
D. On peut le relancer en appelant generator.next() D. Utiliser document.injectHTML() (n’existe pas)
(non, c’est terminé)

90. (CM) En CommonJS, module.exports = class {} :


85. (CM) Dans le DOM, quels éléments peuvent
déclencher un événement focus ? A. Exporte une classe anonyme comme export
principal
A. Les champs de formulaire (input, textarea, select)
B. Est équivalent à export default class {} en ESM
B. Les éléments avec tabindex
C. Permet const X = require("./fichier"); let instance =
new X();
96. (CM) Array.prototype.every() et
D. Génère une erreur de syntaxe Array.prototype.some() :

A. Renvoient un booléen

91. (CM) Lesquels de ces appels sur un objet B. Acceptent un callback (element, index, array)
Promise sont corrects ?
C. Parcourent tout le tableau sauf si la condition est
A. promise.then(onFulfilled) déjà déterminée (court-circuit)

B. promise.catch(onRejected) D. Modifient le tableau en place

C. promise.finally(onFinally)

D. promise.next() (c’est pour les générateurs, pas pour 97. (CM) Dans le DOM, quelles sont des méthodes
les promesses) pour insérer du texte ou du HTML ?

A. element.textContent = "..." (texte brut)

92. (CM) Dans un générateur, yield : B. element.innerHTML = "<span>...</span>" (html


interprété)
A. Suspend l’exécution jusqu’au prochain next()
C. element.insertAdjacentHTML("beforeend", "...")
B. Peut recevoir une valeur via next(value)
D. element.value = "..." (uniquement pour champs de
C. Peut être utilisé sans valeur : yield; formulaire)
D. Détruit le générateur si on l’appelle trop de fois

98. (CM) Lesquels de ces scripts asynchrones


existent côté navigateur ?
93. (CM) Lesquels de ces attributs HTML peuvent
influencer l’exécution d’un <script> ? A. <script src="file.js" async>

A. async B. <script src="file.js" defer>


B. defer C. <script type="module"> (charge de façon
asynchrone par défaut)
C. type="module"
D. <script src="file.js" concurrency> (n’existe pas)
D. reload="auto" (n’existe pas)

99. (CM) Dans un IIFE, on peut :


94. (CM) Lesquels de ces événements sont liés au
DOM lorsque la page est en cours de navigation ? A. Déclarer des variables locales qui n’affectent pas le
scope global
A. beforeunload (l’utilisateur s’apprête à quitter la
page) B. Retourner un objet en fin d’exécution
B. unload (la page est déchargée) C. Se passer totalement de () => {} si on n’a pas besoin
de scope isolé
C. hashchange (le hash de l’URL change)
D. Lancer la fonction immédiatement par ()() (il faut
D. popstate (historique, back/forward)
(function(){})())

95. (CM) Lesquels de ces opérateurs/éléments sont


100. (CM) Lesquelles de ces lignes de code
spécifiques à ES2015 ou + ?
déclenchent un événement de manière
A. => (arrow functions, ES6) programmatique dans le DOM ?

B. class (ES6) A. element.click() (simule un clic)

C. import / export (ES6) B. element.dispatchEvent(new Event("click"))

D. var (existe depuis ES1) C. element.fireEvent("onclick") (ancien IE)


D. element.trigger("click") (jQuery, pas vanilla JS)

Vous aimerez peut-être aussi