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
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.