javascript interview question #45

Как в JavaScript форматировать число в локализованную валюту? Что будет выведено в консоль?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

В первой строке создается переменная price типа BigInt. Этот тип часто используется во всем что связано с деньгами, потому что в нем можно безопасно хранить числа больше чем Number.MAX_SAFE_INTEGER.

Дальше, мы пытаемся форматировать число 99n в валюту с помощью функции toLocaleString.

Чтобы форматирование сработало корректно, в toLocaleString нужно передать 2 параметра:

  • локаль, например en-US, — определит вид форматирования строки
  • объект c опциями форматирования

Одной из опций форматирование может быть style: 'currency'. Тогда число будет представлена как валюта определенного региона:

console.log(99n.toLocaleString('en-US', { style: 'currency', currency: 'USD' }));
console.log(49n.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));
console.log(19n.toLocaleString('en-IN', { style: 'currency', currency: 'INR' }));

Цены будут отформатированы по-разному:

$99.00
49,00 €
₹19.00

Но, если ты внимательно посмотришь на пример кода в задаче, то заметишь, что в опциях не была указана валюта. Без поля currency форматирование валюты не имеет смысла и работать не будет.

Возникнет ошибка, и цена не будет выведена на экран.


ОТВЕТ: В консоли появится ошибка TypeError: Currency code is required with currency style.