Adloun

JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 4 · Exercice de TD

Une fabrique de formateurs

Portée, fermetures et this · niveau 1 (application)

Énoncé

Écrire creerFormateur(devise, locale = "fr-FR"), qui renvoie une fonction transformant un montant en centimes en une chaîne formatée dans cette devise (avec Intl.NumberFormat). Pourquoi est-il préférable de créer l'objet Intl.NumberFormat dans creerFormateur plutôt que dans la fonction renvoyée ?

Corrigé


function creerFormateur(devise, locale = "fr-FR") {
  const format = new Intl.NumberFormat(locale, {
    style: "currency",
    currency: devise,
  });
  return (centimes) => format.format(centimes / 100);
}

const euros = creerFormateur("EUR");
const dollars = creerFormateur("USD", "en-US");
console.log(euros(2700), euros(123456));
console.log(dollars(2700));

27,00 € 1 234,56 €
$27.00

Créé dans creerFormateur, l'objet de formatage est construit une fois par devise, et la fonction renvoyée s'en souvient ; créé dans la fonction renvoyée, il serait reconstruit à chaque montant formaté, pour rien.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →