Getallen en rekenen
In JavaScript geeft 0.1 + 0.2 de waarde 0.30000000000000004 en 17 % 5 geeft 2. Beide zijn logisch zodra je weet hoe getallen worden opgeslagen en wat % betekent.
De rekenoperatoren
Het meeste wat computers doen komt neer op rekenen en JavaScript schrijft dat ongeveer zoals op papier. De symbolen die het werk doen heten operatoren. Vijf ken je al en twee zijn nieuw:
| Operator | Betekenis | Voorbeeld | Resultaat |
|---|---|---|---|
| + | optellen | 7 + 2 | 9 |
| - | aftrekken | 7 - 2 | 5 |
| * | vermenigvuldigen | 7 * 2 | 14 |
| / | delen | 7 / 2 | 3.5 |
| % | rest | 7 % 2 | 1 |
| ** | macht | 7 ** 2 | 49 |
Vermenigvuldigen gebruikt een sterretje, omdat de letter x verward zou worden met een variabele x. Delen geeft altijd het exacte antwoord, inclusief decimalen: 7 / 2 is 3.5, niet 3. De restoperator % deelt en houdt alleen over wat resteert. 17 % 5 is 2, want 5 gaat driemaal in 17 (15) met 2 over. Dat klinkt als een aardigheidje, maar het is een van de meest gebruikte operatoren bij programmeren. Een getal is precies dan even als n % 2 gelijk is aan 0, en minutes % 60 geeft de minuten die overblijven na aftrek van hele uren.
Volgorde van bewerkingen
JavaScript volgt dezelfde volgorde als schoolwiskunde. Eerst komen machten, dan vermenigvuldigen, delen en rest en daarna optellen en aftrekken. Operatoren met gelijke prioriteit worden van links naar rechts verwerkt, behalve **, dat van rechts naar links werkt. Haakjes gaan voor alles, dus voeg ze bij twijfel toe; ze kosten niets en maken de bedoeling voor de volgende lezer duidelijk.
console.log(2 + 3 * 4); // 14
console.log((2 + 3) * 4); // 20
console.log(20 - 6 / 2); // 17
console.log(2 ** 3 * 5); // 40Verkorte vormen om een variabele bij te werken
Een variabele bijwerken met haar eigen waarde komt zo vaak voor dat er verkorte vormen zijn. x += 5 betekent x = x + 5 en er zijn overeenkomstige vormen -=, *= en /=. Precies één optellen of aftrekken heeft een nog kortere vorm: x++ telt 1 op en x-- trekt 1 af. Je zult ++ voortdurend in lussen zien.
let coins = 10;
coins += 5; // 15
coins *= 2; // 30
coins--; // 29
console.log(coins); // 29De Math-hulpmiddelen
JavaScript heeft een ingebouwd object Math met kant-en-klare getalhulpmiddelen. Math.round(2.5) rondt af op het dichtstbijzijnde gehele getal (3), Math.floor(2.9) rondt altijd omlaag af (2) en Math.ceil(2.1) rondt altijd omhoog af (3). Math.max(4, 9, 2) geeft de grootste waarde en Math.min de kleinste. Math.sqrt(81) is de vierkantswortel, 9, en Math.PI is het getal π, ongeveer 3.14159. Math.floor en % passen goed samen: voor 135 minuten is Math.floor(135 / 60) gelijk aan 2 uur en 135 % 60 gelijk aan 15 minuten.
Waarom 0.1 + 0.2 niet precies 0.3 is
JavaScript slaat elk getal binair op met een vaste hoeveelheid geheugen, volgens het IEEE 754-formaat met dubbele precisie dat de ECMAScript-standaard voorschrijft. Sommige gewone kommagetallen, zoals 0.1, kun je niet exact binair schrijven, net zoals 1/3 niet exact in decimale notatie kan. De kleine afrondingsfouten blijven meestal verborgen maar zijn soms zichtbaar: 0.1 + 0.2 drukt 0.30000000000000004 af. Dat is geen fout in je code. Als je geld of metingen aan mensen toont, rond je het resultaat af, bijvoorbeeld met (0.1 + 0.2).toFixed(2), wat de string "0.30" geeft. Gehele getallen tot ongeveer negen biljard worden exact opgeslagen, dus tellen wordt nooit beïnvloed.
Uitgewerkte voorbeelden
Voorbeeld 1. Het gemiddelde van 80, 90 en 85 is (80 + 90 + 85) / 3. Zonder haakjes deelt 80 + 90 + 85 / 3 alleen de 85 en geeft ongeveer 198.3. Voorbeeld 2. Is 2024 een veelvoud van 4? 2024 % 4 is 0, dus ja. Voorbeeld 3. Je verdeelt 50 snoepjes over 6 kinderen: Math.floor(50 / 6) is elk 8 en 50 % 6 is 2 over.
| operator | Een symbool dat waarden bewerkt: + - * / % ** |
| % | Rest na deling: 17 % 5 is 2 |
| ** | Macht: 2 ** 3 is 8 |
| += | x += 5 betekent x = x + 5 |
| ++ | Tel precies 1 bij een variabele op |
| Math.floor | Rond omlaag af op een geheel getal |
| Math.round | Rond af op het dichtstbijzijnde gehele getal |
| toFixed(2) | Geef een getal weer met 2 decimalen, als string |
- Wat drukt deze code af?
console.log(2 + 3 * 4); - Wat drukt deze code af?
console.log((2 + 3) * 4); - Wat drukt deze code af?
console.log(17 % 5); - Wat drukt deze code af?
console.log(9 / 2); - Wat drukt deze code af?
console.log(2 ** 5); - Wat drukt deze code af?
let x = 10; x += 4; x *= 2; console.log(x); - Wat drukt deze code af?
let n = 5; n++; n++; n--; console.log(n); - Wat drukt deze code af?
console.log(Math.floor(7.9), Math.ceil(7.1));- 8 8
- 7 8
- 7 7
- Wat drukt deze code af?
console.log(Math.max(3, 11, 6) - Math.min(3, 11, 6)); - Wat drukt deze code af?
console.log(10 - 4 - 3); - Welke expressie is waar voor elk even getal n?
n % 2 === 0n / 2 === 0n % 2 === 1
- Wat drukt deze code af?
console.log((0.1 + 0.2).toFixed(2));
- + - * / werken zoals in wiskunde; / behoudt decimalen.
- % geeft de rest; n % 2 === 0 betekent dat n even is.
- ** is machtsverheffen. Eerst haakjes, dan **, dan * / % en dan + -.
- x += 5 en x++ zijn verkorte vormen om x bij te werken.
- Math.floor, Math.round, Math.ceil, Math.max, Math.min, Math.PI.
- Kommagetallen kunnen kleine afrondingsfouten bevatten; gebruik toFixed voor de weergave.
Bronnen van deze cursus (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17).
Geraadpleegd: 2026-10-17