You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

96 lines
3.1 KiB

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>My Learning Website</title>
<link href="/styles/styles.css" rel="stylesheet" type="text/css">
<link href="/webdevelopment/styles/styles.css" rel="stylesheet" type="text/css">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<h1 class="courselink">JavaScript Essential Training</h1>
<h2 class="lecturer">LinkedIn Learning : Morten Rand-Hendriksen</h2>
<h1 class="episodetitle">Code Samples</h1>
<article>
<h2 class="sectiontitle">Code Sample 1</h2>
<p>This is the JavaScript code for 08_10 in the exercise files. </p>
<h2 class="sectiontitle">Callback Function</h2>
<pre class="codesample">
/**
* 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) =&gt; {
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) =&gt; {
const tipTable = document.createElement("table");
tipTable.innerHTML = `
&lt;tr&gt;
&lt;td&gt;Sum before tip:&lt;/td&gt;
&lt;td&gt;${finalTip.sum}&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tip percentage:&lt;/td&gt;
&lt;td&gt;${finalTip.percentage}&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tip:&lt;/td&gt;
&lt;td&gt;${finalTip.tip}&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total:&lt;/td&gt;
&lt;td&gt;${finalTip.total}&lt;/td&gt;
&lt;/tr&gt;
`;
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) =&gt; {
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");</pre>
</article>
<div class="btngroup">
<button class="button" onclick="window.location.href='javascriptessentialtraining2021.html'">
Course Contents
</button>
<button class="button" onclick="window.location.href='/webdevelopment/webdevelopment.html'">
Web Development Page
</button>
<button class="button" onclick="window.location.href='/index.html'">
Home
</button>
</div>
</body>
</html>