Quiz : Maîtrisez‑vous le JavaScript moderne ?
Prouvez votre maîtrise JavaScript !
Connaissez‑vous l’ES2015 de l’ES2022 ?
- Prouvez votre maîtrise de JavaScript ! 🚀
- Aucun login ou inscription requis. ✨
- Choix multiples. 🤖 … À quel point cela peut‑il être difficile, hein ?
Quel sera le résultat du code suivant ?
const value = false;const defaultVal = 42;console.log(value ?? defaultVal);L’opérateur de coalescence nulle (??) considère les valeurs falsy comme false comme des valeurs valides. Comme value vaut false, il est considéré comme une valeur valide et est renvoyé.
Quel est le résultat du code suivant ?
const obj = { foo: null };const result = obj.foo?.bar;console.log(result);L’opérateur de chaînage optionnel (?.) interrompt l’évaluation si le côté gauche est null ou undefined. Comme obj.foo vaut null, obj.foo?.bar évalue à undefined.
Quel est le résultat du code suivant ?
const a = 42n;const result = a * 2n;console.log(result);Les valeurs BigInt sont créées en ajoutant n à un nombre. Vous ne pouvez pas mélanger BigInt et nombres ordinaires dans les opérations arithmétiques. Ici, les deux valeurs sont des BigInt, donc la multiplication fonctionne, produisant 84n.
Que cela affiche-t-il ?
const modulePromise = import('./myModule.js');console.log(typeof modulePromise);La fonction import() renvoie une Promise qui se résout en l’objet du module. Comme les instances de Promise sont des objets, typeof modulePromise affiche 'object'.
Quel sera le résultat du code suivant ?
const promises = [ Promise.resolve('success'), Promise.reject('error')];Promise.allSettled(promises).then(results => { console.log(results[0].status + ': ' + results[0].value);});Promise.allSettled renvoie un tableau d’objets décrivant le résultat de chaque promesse. La première promesse est fulfilled avec la valeur 'success', donc l’instruction console affichera fulfilled: success.
Que renvoie str.matchAll() ?
const str = 'foo1bar2baz3';const matches = str.matchAll(/\d/g);String.matchAll renvoie un itérateur de correspondances, pas un tableau. Cet itérateur peut être utilisé pour obtenir tous les groupes correspondants d’une chaîne.
Que représente import.meta.url ?
console.log(import.meta.url);import.meta est un objet qui contient des métadonnées sur le module actuel. La propriété import.meta.url représente l’URL du module actuel, qui peut être utilisée pour obtenir des informations sur l’emplacement d’exécution du script.
Quelle est la valeur de a après l’assignation logique ?
let a = null;a ||= 10;console.log(a);L’assignation logique OU (||=) attribue la valeur de droite si la valeur de gauche est falsy (null, undefined, 0, false, etc.). Puisque a vaut null, elle reçoit la valeur 10.
Quelle est la valeur de b après l’assignation nullish ?
let b = null;b ??= 10;console.log(b);L’assignation de coalescence nullish (??=) attribue la valeur de droite si la valeur de gauche est null ou undefined. Comme b vaut null, elle reçoit la valeur 10.
Que fournit WeakRef ?
const obj = { data: 'important' };const ref = new WeakRef(obj);console.log(ref.deref());WeakRef fournit une référence faible à un objet, ce qui permet à l’objet d’être récupéré par le ramasse‑miettes s’il n’existe aucune autre référence. Comme obj est encore fortement référencé ici, deref() renvoie l’objet original. Si la cible avait été libérée, deref() renverrait undefined.