gegevens | categoriën | declareren | operatoren | overzicht operatoren |
Gegevens |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
In een interactieve website moet men vaak
gegevens invoeren. Dit kunnen allerlei soorten gegevens zijn.
Denk maar aan je naam of adres, het salaris dat je verdient, een aantal artikelen
dat je wilt kopen, het aantal exemplaren van één artikel enz..
Welke gegevens je allemaal verder kunt invoeren, is in dit hoofdstuk niet van belang.
Wel gaan we kijken hoe javascript met dit soort gegevens omgaat.
Geef in het voorbeeld eens een woord als invoer. Bij het programmeren wordt veel gebruik gemaakt van variabelen. Een variabele is dus een naam-waarde combinatie die de computer kan gebruiken. De computer slaat een waarde tijdelijk op in een variabele (eigenlijk reserveert de computer een stukje van je geheugen, hangt aan dit stukje de naam die je het gegeven hebt en slaat de waarde daar op). Denk aan $y=2 \cdot x$, hierin zijn de x en y variabel. Zodra je een waarde aan x geeft kan je er iets mee, bv $ x=2 \rightarrow y=2\cdot(2) \rightarrow y=4 $ . De x is de naam van de variabele en de waarde is (in dit geval) 2. Bij programmeren doe je iets soortgelijks: eerst definieer (declareer) je de variabele en daarna gebruik je hem. In javascript declareer je een variabele als volgt:
let a = 9;Deze regel code betekent: maak een variabele, geef hem de naam 'a' en zet daar de waarde 9 in. Het geheugen van een computer kan je zien als een kast met allemaal bakjes. Als je een variabele declareert opent de computer een bakje en schrijft op de voorkant de naam die je de variabele gegeven hebt. Dan schrijft de computer op een blaadje de waarde die je aan de variabele geeft en stopt dat blaadje in het bakje. Als je dan later in de code de naam van dat bakje gebruik (in dit geval a) weet de computer dat het de inhoud van dat bakje moet pakken en gebruiken (in dit geval 9). Na de declaratie kan je ook de inhoud van het bakje veranderen. Dat doe je door (bv): '$a=5;$' te gebruiken, de computer 'gooit het oude blaadje weg', schrijft op een nieuw blaadje het getal 5 en stopt dat in het bakje.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Aan het einde van deze les weet je :
Bekijk de video. Deze video biedt een basis voor de rest van dit hoofdstuk. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gegevens in categoriën |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gegevens kunnen we in Javascript en overigens in alle programmeertalen in categorieën verdelen. Alleen noemen we ze geen categorieën meer, maar het type van een gegeven. Er zijn verschillende typen te onderscheiden. De meest bekende zijn: string, double en integer, array. Wat betekenen deze typen en wat voor gegevens vallen hieronder? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
string | In de categorie string vinden we tekst of wel tekenreeks.
Alles wat met tekst te maken heeft en in javascript code tussen "" of '' staat is tekst.
Voorbeelden: In de basiselementen heb je onderstaand eerste voorbeeld al gezien. <script type="text/javascript"> // Druk in de browser de functietoets F12 in om de uitvoer van console.log te zien. console.log("This is my first JavaScript!"); </script> <script type="text/javascript"> console.log("123.6"); </script> <script type="text/javascript"> console.log("@$^@@!!!!"); </script> Zowel "This is my first JavaScript!" , "123.6" en "@$^@@!!!!" staan tussen aanhalingstekens en worden in javascript code gezien als tekst. Met tekst kun je niet direct rekenen. Het tweede voorbeeld moet eerst naar een getal worden omgezet! Het getal wat je in het invoerveld hebt ingevuld is in eerste instantie tekst. De onderliggende code doet een vertaling van die tekst naar een getal. Als je daar een woord in typte kreeg je NaN wat staat voor Not A Number. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
integer | Het type integer staat voor gehele getallen, B.v, 10 of 43 etc.
Voorbeelden:
<script type="text/javascript"> console.log("10 + 30 = " + (10 + 30)+"<br/>"); let a=10; let b=30; console.log(a+ " + " + b + " = " + (a + b)); </script>
In dit voorbeeld zul je als uitvoer twee keer de regel 10 + 30 = 40.
Tussen haakjes worden eerst de getallen bij elkaar opgeteld. Strings kun je ook "optellen" met de + operator.
<script type="text/javascript"> let a="10"; let b="30"; console.log(a+ " + " + b + " = " + (a + b)); </script>In dit voorbeeld zul je te zien krijgen 10 + 30 = 1030. De tekenreeks "10" wordt dan aan de tekenreeks "30" vast geplakt. Er is dus een verschil tussen a="10"; en a=10; |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
double | Onder het type double vallen alle decimale getallen. Dus 10.49 of 45.6 etc.
Programmeertalen zijn Engels georiënteerd. Er wordt dus gebruik gemaakt
van de decimale punt.
Voorbeelden: Ook hier is er weer verschil tussen <script type="text/javascript"> console.log("10.6 + 30.44 = " + (10.6 + 30.44)); </script>(dit geeft 10.6 + 30.44 = 41.04) en <script type="text/javascript"> console.log("10.6 + 30.44 = " + "10.6" + "30.44"); </script>(dit geeft 10.6 + 30.44 = 10.630.44). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
array | Het laatste type is een array. Een array staat voor rij.
Deze rij bevat meerdere gegevens van dezelfde hierboven genoemde types. Bijvoorbeeld: Een array van string bevat meerdere tekststrings. Een array van integer bevat meerdere getallen. Een array van double bevat meerdere decimale getallen. Een array in javascript kan ook tegelijkertijd strings, doubles en integers bevatten. Hoewel we nog niet diep ingaan op het belang van arrays, geven we hier een voorbeeld. Later zullen we er nog vaak op terugkomen. Arrays zijn namelijk erg belangrijk bij de opslag van gelijksoortige gegevens. Zoals bijvoorbeeld een lijst van proefwerkcijfers.
<script type="text/javascript"> let rijtje=new Array("Ik","ben",178,"cm",73.5,"kg"); console.log(rijtje[0]+" "); console.log(rijtje[1]+" "); console.log(rijtje[2]+" "); console.log(rijtje[3]+"<br/>"); console.log(rijtje[0]+" "); console.log(rijtje[1]+" "); console.log(rijtje[4]+" "); console.log(rijtje[5]+"<br/>"); </script>Geeft: Ik ben 178 cm Ik ben 73.5 kg |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Opdrachten |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gegevens declareren |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
In bovenstaande opdracht staan regels die beginnen met var. Deze
code regels noemen we variabele declaraties.
De regel
let a = 9;betekent. Declareer de variabele (var) a en geef die variabele de integer waarde 9. Een variabele kun je zien als een bakje. Je schrijft op de buitenkant de naam a van het bakje en stopt in het bakje een briefje met het getal 9. Later in de code begrijpt de programmeertaal dat je met de aanroep van a bedoelt dat je iets wil doen met de inhoud van het bakje. De naam a representeert dan de waarde 9. De regel let uitkomst = a+b+c;is een voorbeeld van het gebruik van die bakjes. De code maakt een nieuw bakje aan genaamd uitkomst. In dit bakje worden niet de bakjes a , b en c gestopt, maar worden de waarden in de bakjes bij elkaar opgeteld. De uitkomst van deze optelling wordt op een nieuw papiertje geschreven en in het bakje genaamd uitkomst gestopt. Je kunt ook een variabele hergebruiken. Bijvoorbeeld: a = a + b; let uitkomst = a+c;Hier wordt in de eerste regel het getal in a bij het getal in b opgeteld. Het resultaat wordt weer onder de naam a opgeslagen. De uitkomst is nu gelijk aan aande uitkomst uit het vorige voorbeeld. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
logische naamgeving |
De naam uitkomst is wat men noemt een een logische naamgeving.
Variabelen zijn 'dingen' die je heel vaak gebruikt in programmeertalen. Omdat je ze steeds moet hergebruiken is het heel handig om de variabele een logische naam te geven. Met logische naamgeving wordt bedoelt dat je de variabele een naam geeft die duidelijk maakt wat erin staat. De voorbeelden hierboven zijn namen die niet logisch zijn. Waar staat variabele 'a' voor? Aan de naam 'a' kan je niet zien waarvoor de waarde gebruikt wordt/gaat worden. Stel je voor dat je de variabele nodig hebt om het aantal behaalde punten in een spel bij te houden is het niet logisch om 'let a = 0' te gebruiken maar is het duidelijker en logischer om 'let score = 0' te gebruiken. Heb je maar 1 variabele in je code kan het nog duidelijk zijn dat je 'a' voor de score gebruikt, maar in de meeste code gebruik je heel veel variabele en zou je dus elke keer moeten kijken waar 'a' precies ook alweer voor staat. Gebruik je de variabele later in de code als je de score dan gaat aanpassen dan weet je dat je de variabele 'score' hiervoor moet gebruiken. Logische naamgeving is nodig voor het onderhouden en begrijpelijk maken van je code. Stel je voor je schrijft een programma en een paar weken later moet je (of een ander, je docent misschien?) iets verbeteren. Gebruik je logische namen voor je variabele weet je (of een ander) meteen waar je die variabele voor gebruikt had ipv dat je eerst moet zoeken naar waar die variabele voor staat. Naast dat het handig is voor jezelf en anderen, zal je er ook op beoordeeld worden bij de ingeleverde opdrachten!! De naam van een variabele mag geen spaties,punten,komma,uitroepteken en min of plus teken bevatten en niet met een cijfer beginnen. Er zijn nog een paar uitzonderingen. Beperk je dus zoveel mogelijk tot woorden. Als je een naam wilt weergeven dat uit meerdere woorden bestaat, doe dit dan zo: bedrag_per_uur of bedragPerUur. Je hebt nu gezien hoe je een gegeven moet declareren. Stel je de volgende situatie eens voor: je wilt al je cijfers voor het vak informatica opslaan. Je weet al dat dit type een double is. Laten we uitgaan dat dit zeven cijfers zijn. Dan moet je wel heel veel declareren. Dit kan handiger. Door gebruik te maken van een array. Een voorbeeld is hieronder weergegeven. let cfr_inf = new Array(9.8, 6.4, 7.7, 8.7, 5.3, 7.5, 6.9);Een array kan je zien als een ladenkast. Een ladenkast (grote bak) bevat meerdere laatjes (bakjes). De kast heeft in het voorbeeld de naam cfr_inf en de laatjes krijgen als naam het nummer van de la. In de meeste programmeertalen begint de nummering ( ook wel indexering genoemd) met 0. Zo kun je je het volgende voorstellen.
Voorbeeld: <script type="text/javascript"> let cfr_inf = new Array(9.8, 6.4, 7.7, 8.7, 5.3, 7.5, 6.9); console.log("Het vierde getal in cfr_inf {" + cfr_inf + "} is " + cfr_inf[3] ); </script> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Opdrachten |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Operatoren |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Om iets met de inhoud van variabelen te doen zijn er in alle programmertalen operatoren beschikbaar. Een andere mogelijkheid, die we later zullen behandelen, is het gebruik van functies. Het grootste verschil tussen operatoren en functies is dat een functie een verzameling van deze operatoren is. De operatoren zijn dus de basis bwerekingen op gegevens. Omdat in computers dataopslag plaats vind als rijtjes van enen en nullen zijn de meeste operatoren wiskundige van aard. In de voorafgaande voorbeelden ben je al optellen '+', vermenigvuldigen '*' en delen '/' tegengekomen, echte basale wiskundige bewerkingen, waartoe aftrekken '-' natuurlijk ook behoort.De andere al veel gebruikte operator '=' zorgt ervoor dat je een waarde aan een variabele toekent. De variabele die links voor het 'is-teken' staat krijgt de waarde toegekend die links van het 'is-teken' staat (en niet andersom!!). Dus zoals in het voorbeeld van hierboven betekent let a = 9;: ken de waarde 9 toe aan de variabele a. Het betekent dus niet, zoals in de wiskunde,: a is gelijk aan 9!. Want in de wiskunde geldt ook dat '9 = a'. De computer '=' zou dan de waarde a aan 9 willen toekennen en dat kan niet. Een tweede voorbeeld is let q = 3 + 4;. Dit betekent: 3+4 (oftewel 7) wordt toegekend aan de variabele q. In de vorige paragraaf hebben we een tweede operator gezien: de '+'. Hiermee tel je getallen bij elkaar op (net zoals in de wiskunde). Dus let q = 3+4 betekent 3+4 wordt uitgevoerd waar het getal 7 uit komt en dat getal wordt toegekend aan de variabele q. De '=' operator heeft dus een lagere prioriteit dan optellen. Een andere wiskundige operator die vaak gebruikt wordt is de modulo-operator '%'. Voor we uitleggen wat dat betekent eerst een paar voorbeelden.
12%5 heeft als resultaat 2 omdat je van 12 twee keer het getal 5 afhalen, waarna je nog 2 overhoud. 13%4 heeft als resultaat 1 omdat je drie keer het getal 4 er van af kan halen waarna er nog ... overblijft. 38%13 heeft als resultaat 12 omdat je ... keer het getal 13 er van af kan halen waarna er nog ... overblijft. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Opdrachten |
Er zijn nog twee operatoren die vaak gebruikt worden. Dat zijn de '++' en '--' operatoren. Deze staan voor het respectievelijk ophogen en verlagen van de variabele met 1. Het is dus als het ware een afkorting. Voorbeeld: i++ betekend i = i + 1 en i-- betekent i = i - 1. Naast de '=' operator, die waardes aan variabele toekent, zijn er meer toekennende operatoren. Deze operatoren combineren eigenlijk twee operatoren in een. De operatoren zijn '+=', '-=', '*=', '/=' en '%='. Net als de '++' en '--' zijn het afkortingen. De += operator is een afkorting voor 'nieuwe waarde van variabele is oude variabele plus getal'. Voorbeeld: a += 2 betekent a = a + 2. Op die manier werken de andere operatoren ook. Voorbeeld: a -= 2 betekent a = a - 2 en a *= 2 betekent a = a * 2 etc. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Opdrachten |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Overzicht van de meest gebruikte operatoren |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|