Skip to main content

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. In 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? Functies worden gebruikt om twee redenen:

  1. Om lange programma's in nette blokjes op te delen en;
  2. 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.

Kopieer de scipt code op je husiwerkblad.

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.

Kopieer de scipt code op je husiwerkblad.

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.

Kopieer de scipt code op je husiwerkblad.

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.

Kopieer de scipt code op je husiwerkblad.

Opgave 5

Als je in een vliegtuig vliegt dan hoor je de piloot altijd zeggen dat ze op bijvoorbeeld 9000 feet vliegen. Om dit om te rekenen in meters moet je dit delen door 3.28. Dus 9000 feet is 9000/3.28 = 2744 meter oftwel 2.7 kilometer hoog.

Maak nu een functie waarin je als parameter de feet stops en waarbij de output kilometers is. Dus als je er 9000 in stops dan krijg je er 2.7 uit.

Vraag vervolgens een met de promt functie aan de gebruiker om de hoogte in feet in te vullen en druk daarna op het scherm (in je browser) af wat de hoogte is in kilometers.

Kopieer de scipt code op je husiwerkblad.

Opgave 6- 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........

​Beschrijf op je huiswerkblad wat er gebeurt.

<script>
	function myFunction(a) {
		antwoord = a * 2;
		if (antwoord < 100) {
			myFunction(antwoord);
		}
		return (antwoord);         	
    }

	document.write( myFunction(5) );
</script>

--