Войти Регистрация
Фронтенд

45. Баланс МТС в выражениях: Symbol.toPrimitive, valueOf и toString

Средняя

Что выведет код? Запишите строки по порядку, по одной на строку.

В работе: Объекты-деньги и объекты-даты в шаблонах и арифметике: откуда в интерфейсе «[object Object]» или лишнее число.

Как проверяем Код не запускаем — предскажите вывод. Пишите строки по порядку, по одной на строку; пробелы по краям не важны. Ответ один на подход: после него показываем разбор.
приведение типовSymbol.toPrimitivevalueOf

Источник: на задачах МТС: виджет баланса. Условие пересказано своими словами.

  1. const balance = {
  2. rub: 350,
  3. [Symbol.toPrimitive](hint) {
  4. console.log('hint', hint);
  5. return hint === 'string' ? 'Баланс 350 ₽' : this.rub;
  6. },
  7. };
  8. console.log(+balance);
  9. console.log(`${balance}`);
  10. console.log(balance + 50);
  11. console.log(balance > 300);
  12. console.log(balance == 350);
  13. const tariff = {
  14. valueOf() { return 500; },
  15. toString() { return 'Мой безлимит'; },
  16. };
  17. console.log(tariff + '');
  18. console.log(String(tariff));
  19. console.log([tariff] + '');