Code Sample 1
This is the JavaScript code for 08_10 in the exercise files.
Callback Function
/**
* Using a callback function.
* @link https://developer.mozilla.org/en-US/docs/Glossary/Callback_function
*/
// Helper function to format currency numbers. Used by tipCalculator
const formatter = (locale = "en-US", currency = "USD", value) => {
let formattedValue = new Intl.NumberFormat(locale, {
style: "currency",
currency: currency,
}).format(value);
return formattedValue;
};
// Callback receives finalTip object, creates and outputs table on the DOM.
const printHTML = (finalTip) => {
const tipTable = document.createElement("table");
tipTable.innerHTML = `
Sum before tip:
${finalTip.sum}
Tip percentage:
${finalTip.percentage}
Tip:
${finalTip.tip}
Total:
${finalTip.total}
`;
document.querySelector("main").append(tipTable);
};
// Create a finalTip object with all the data. Send it to the printHTML callback.
const tipCalculator = (sum, percentage, locale, currency) => {
let tip = sum * (percentage / 100);
let total = sum + tip;
const finalTip = {
sum: formatter(locale, currency, sum),
percentage: percentage + "%",
tip: formatter(locale, currency, tip),
total: formatter(locale, currency, total),
};
};
tipCalculator(29.95, 18, "de-DE", "EUR");