Les 4, Functions
We kennen nu de basis van JavaScript en gaan nu de volgende stap maken in het leren van JavaScript. In de volgende lessen gaan we het hebben over functies, arrays, objects en loops.
In deze les gaan we leren wat een functie is.
Functions / Functies
Zie ook: https://www.w3schools.com/js/js_functions.asp
We hebben eigenlijk al kennis gemaakt met functies. We hebben in de eerste lessen de functie prompt gebruikt. Weet je nog? De functie prompt stelt een vraag aan de gebruiker, die dan iets moet invullen. De waarde die de gebruiker invoert wordt dan in een variable gestopt.
antwoord = prompt(vraag);
Wat hier staat is dat de functie prompt wordt opgeroepen en bij deze oproep wordt er een waarde meegegeven, deze waarde is de string "vraag". Een functie is een soort automaat; je gooit er wat in en je krijgt wat terug. INIn de prompt functie stop je de vraag erin en je krijgt het antwoord eruit.
Je kunt zelf ook functies maken, bijvoorbeeld een functie die twee getallen optelt.
function myFunction(a, b) {
var antwoord;
antwoord = a+b;
return antwoord;
}
Een function begin je met function, dan komt de naam van de functie die je maakt en dat zet je tussen haakjes twee variabelen. In deze variabelen komt te staan wat je in de funtie gooit (net als een automaat waar je muntjes in gooit). Dan begint de functie met een { en hij eindigt met een } . Daar tussenin staat de code van de functie; dus wat de funtie doet. In dit geval wordt er een variabele antwoord gemaakt en daar wat de som (de optelling) van a en b in gezet. Vervolgens wordt de waarde van de variabele terug gegeven als uitkomst.
De variabelen die je aan de functie meegeeft hoef je niet apart met var te declareren (initialiseren).
parameters
Wat je in een functie 'gooit' heet ook wel de parameters
return value
Wat een functie terug geeft wordt ook wel de retun value genoemd.
Dus....
Een eigen gemaakte functie gebruik je net zoals een in JavaScript ingebouwde fucntie: de bovenstaande functie roep je aan door:
antw=myFunction(3, 4);
of
antw=myFunction(getal1, getal2);
of
docuement.write( myFunction(3,4) );
Waarom functies? FuncteisFuncties worden gebruikt om twee redenen:
- Om lange programma's in nette blokjes op te delen en;
- om veel voorkomende stukken code één keer te maken in plaats van elke keer opnieuw.
Oefenen met functies
Opgave 1
Maak een functie myProduct met twee parameters en geef als return value het product (vermenigvuldigen) van deze twee parameters. Test of de functie werkt.
Opgave 2
Maak een functie uitroepteken met een parameter. Deze parameter is een string. De functie returned dezelfde string maar dan met een uitroepteken er aan vastgeplakt. Test of de functie werkt.
Opgave 3
Maak een functie getalGroterdanNul met één parameter, een getal. De functie returned één van de drie zinnen: het getal is kleiner dan nul, het getal is precies nul of het getal is groter dan nul. Het zinnetje dat door de functie wordt teruggeven hangt uiteraard af van de waarde van het getal wat je aan de functie meegeeft.
Opgave 4
Maak een functie posOptellen met twee parameters. Deze functie geeft de som (optelling) van de twee parameters terug maar als het getal negatief is dan wordt het getal eerst positief gemaakt. Dus, voorbeelden:
posOptellen(3,4) geeft 7 terug
posOptellen(-3,4) geeft 7 terug
posOptellen(3,-4) geeft 7 terug
posOptellen(-3,-4) geeft 7 terug
Test de functie en laat zien dat die werkt.
Opgave 5- plusopdracht/optioneel
Bekijk onderstaande code en voorspel wat er gebeurt, wat wordt er afgedrukt? Kun je dit verklaren? Deze manier van programmeren heet recursief. Het is als het ware als je van jezelf een foto maakt in de spiegel, dan zie je op de foto de spiegel waarin je weer jezelf ziet in de spiegel waarin je weer jezelf ziet........
<script>
function myFunction(a) {
antwoord = a * 2;
if (antwoord < 100) {
myFunction(antwoord);
}
return (antwoord);
}
document.write( myFunction(5) );
</script>
--