JavaScript · Senior · Запитання 45 з 75
Що поверне вираз?
const obj = {
[Symbol.toPrimitive](hint) {
return hint === "number" ? 42 : "obj";
},
};
console.log(+obj, `${obj}`);- ✓Правильна відповідь:
42 obj - 2
NaN [object Object] - 3
42 42
Пояснення
Під час перетворення на примітив рушій викликає Symbol.toPrimitive з підказкою 'number', 'string' або 'default'. Без нього використовуються valueOf і toString. Так працює, наприклад, віднімання дат: date2 - date1.