JavaScript · Senior · Pytanie 45 z 75
Co zwróci wyrażenie?
const obj = {
[Symbol.toPrimitive](hint) {
return hint === "number" ? 42 : "obj";
},
};
console.log(+obj, `${obj}`);- ✓Poprawna odpowiedź:
42 obj - 2
NaN [object Object] - 3
42 42
Wyjaśnienie
Przy konwersji na prymityw silnik wywołuje Symbol.toPrimitive z podpowiedzią 'number', 'string' lub 'default'. Bez niego używane są valueOf i toString. Tak działa np. odejmowanie dat: date2 - date1.