Quiz: Kennst du modernes JavaScript?
Beweise deine JavaScript‑Skills!
Kennst du den Unterschied zwischen ES2015 und ES2022?
- Zeig, was du in JavaScript drauf hast! 🚀
- Kein Login oder Registrierung nötig. ✨
- Multiple‑Choice. 🤖 … Wie schwer kann das schon sein, oder?
Was gibt der folgende Code aus?
const obj = { foo: null };const result = obj.foo?.bar;console.log(result);Der optionale Verkettungsoperator (?.) stoppt die Auswertung, wenn die linke Seite null oder undefined ist. Da obj.foo null ist, evaluiert obj.foo?.bar zu undefined.
Die optionale Verkettung beendet den Zugriff, sobald der geprüfte Wert null oder undefined ist.
Was ist die Ausgabe des folgenden Codes?
const a = 42n;const result = a * 2n;console.log(result);BigInt‑Werte werden erzeugt, indem man an eine Zahl n anhängt. Man kann BigInt nicht mit normalen Zahlen in arithmetischen Operationen mischen. Hier sind beide Werte BigInt, sodass die Multiplikation funktioniert und 84n ergibt.
Beide Operanden tragen das Suffix n. Werden hier unterschiedliche Zahlentypen gemischt?
Was wird hier ausgegeben?
const modulePromise = import('./myModule.js');console.log(typeof modulePromise);Die import()‑Funktion gibt ein Promise zurück, das zum Modul‑Objekt aufgelöst wird. Da Promise‑Instanzen Objekte sind, gibt typeof modulePromise 'object' aus.
Ein dynamischer Import liefert sofort ein Promise. Welchen Typ meldet typeof für ein Promise?
Was wird das Ergebnis des folgenden Codes sein?
const promises = [ Promise.resolve('success'), Promise.reject('error')];Promise.allSettled(promises).then(results => { console.log(results[0].status + ': ' + results[0].value);});Promise.allSettled gibt ein Array von Objekten zurück, die das Ergebnis jeder Promise beschreiben. Die erste Promise ist fulfilled mit dem Wert 'success', daher wird die Log‑Anweisung fulfilled: success ausgeben.
allSettled liefert Ergebnisobjekte mit status und value beziehungsweise reason.
Was gibt str.matchAll() zurück?
const str = 'foo1bar2baz3';const matches = str.matchAll(/\d/g);String.matchAll gibt einen Iterator von Treffern zurück, nicht ein Array. Dieser Iterator kann verwendet werden, um alle passenden Gruppen aus einem String zu erhalten.
matchAll ermöglicht schrittweisen Zugriff auf die Treffer. Das Ergebnis ist noch kein Array.
Was stellt import.meta.url dar?
console.log(import.meta.url);import.meta ist ein Objekt, das Metadaten über das aktuelle Modul enthält. Die Eigenschaft import.meta.url stellt die URL des aktuellen Moduls dar und kann verwendet werden, um Informationen darüber zu erhalten, wo das Skript ausgeführt wird.
import.meta beschreibt das aktuell ausgeführte Modul, nicht den Zeitpunkt des Imports.
Was bietet WeakRef?
const obj = { data: 'important' };const ref = new WeakRef(obj);console.log(ref.deref());WeakRef liefert eine schwache Referenz auf ein Objekt, wodurch das Objekt vom Garbage Collector freigegeben werden kann, wenn keine anderen Referenzen mehr existieren. Da obj hier noch stark referenziert wird, gibt deref() das ursprüngliche Objekt zurück. Wäre das Ziel bereits freigegeben, würde deref() undefined zurückgeben.
obj hält noch eine starke Referenz auf das Zielobjekt.
