JavaScript · Senior · Frage 45 von 75
Was liefert der Ausdruck?
const obj = {
[Symbol.toPrimitive](hint) {
return hint === "number" ? 42 : "obj";
},
};
console.log(+obj, `${obj}`);- 1
NaN [object Object] - 2
42 obj - 3
42 42
Antwort zeigen
Richtige Antwort: 42 obj
Erklärung
Bei der Umwandlung in einen Primitivwert ruft die Engine Symbol.toPrimitive mit dem Hinweis 'number', 'string' oder 'default' auf. Fehlt es, werden valueOf und toString genutzt. So funktioniert zum Beispiel die Subtraktion von Datumswerten: date2 - date1.