Booleans en vergelijkingen
5 == "5" is true maar 5 === "5" is false. Het drievoudige gelijkteken controleert ook of beide kanten hetzelfde type hebben.
Vragen met een ja-neeantwoord
Programma's stellen voortdurend vragen. Is het wachtwoord lang genoeg? Heeft de speler geen levens meer? Is het vandaag weekend? Elke vraag heeft één van twee antwoorden, die JavaScript weergeeft met de twee booleanwaarden true en false. Booleans zijn genoemd naar George Boole, de negentiende-eeuwse wiskundige die een algebra van waar en onwaar uitwerkte. Op zichzelf zijn ze niet erg spannend, maar ze maken het mogelijk dat een programma beslissingen neemt. Dat komt in het volgende hoofdstuk aan bod.
Vergelijkingsoperatoren
Een vergelijking neemt twee waarden en levert een boolean op. Hieronder staan de zes die je het meest gebruikt. Merk op dat ‘gelijk’ met drie gelijktekens wordt geschreven, omdat één = al ‘sla een waarde op’ betekent.
| Operator | Vraag | Voorbeeld | Resultaat |
|---|---|---|---|
| === | gelijk? | 4 === 4 | true |
| !== | niet gelijk? | 4 !== 4 | false |
| < | kleiner dan? | 3 < 8 | true |
| > | groter dan? | 3 > 8 | false |
| <= | kleiner dan of gelijk aan? | 8 <= 8 | true |
| >= | groter dan of gelijk aan? | 7 >= 8 | false |
Net als een berekening is een vergelijking een expressie, dus je kunt haar afdrukken of in een variabele opslaan: const isAdult = age >= 18; zet true of false in isAdult, afhankelijk van de leeftijd. Namen van booleanvariabelen beginnen vaak met is, has of can, waardoor de code leest als een vraag.
Waarom === en niet ==
JavaScript heeft ook een dubbel gelijkteken, ==, losse gelijkheid genoemd. Vóór het vergelijken probeert het beide kanten naar hetzelfde type om te zetten, wat lastig voorspelbare resultaten oplevert: 5 == "5" is true en 0 == "" ook. Het drievoudige gelijkteken ===, strikte gelijkheid, zet nooit om. Als de typen verschillen, is het antwoord gewoon false. MDN en de meeste stijlgidsen bevelen === en !== aan voor dagelijkse code en in deze cursus gebruik je die overal.
console.log(5 === 5); // true
console.log(5 === "5"); // false
// loose equality, best avoided:
console.log(5 == "5"); // true
console.log("cat" !== "dog"); // trueJe kunt ook strings vergelijken. === controleert of twee strings exact dezelfde tekens hebben, inclusief hoofdletters, dus "Yes" === "yes" is false. De operatoren < en > vergelijken strings teken voor teken met hun tekencodes, wat voor woorden in kleine letters dicht bij woordenboekvolgorde ligt: "apple" < "banana" is true. Hoofdletters komen in die volgorde vóór alle kleine letters, dus "Zebra" < "apple" is ook true.
Antwoorden combineren met &&, || en !
Echte vragen bestaan vaak uit meerdere delen. Een attractie kan een lengte van minstens 120 cm en een leeftijd van minstens 8 vereisen. JavaScript verbindt booleanantwoorden met logische operatoren. && (en) is alleen true als beide kanten true zijn. || (of) is true als minstens één kant true is. ! (niet) keert een boolean om, dus !true is false.
const height = 130;
const age = 7;
console.log(height >= 120 && age >= 8); // false
console.log(height >= 120 || age >= 8); // true
console.log(!(age >= 8)); // trueUitgewerkt voorbeeld. Valt een dag in het weekend? day === "Sat" || day === "Sun". Merk op dat je day === aan beide kanten moet herhalen. day === "Sat" || "Sun" schrijven klinkt natuurlijk in het Engels, maar doet niet wat je bedoelt, omdat "Sun" op zichzelf geen vergelijking is. Vergelijkingen worden vóór && en || uitgerekend, dus height >= 120 && age >= 8 heeft geen extra haakjes nodig, al kan toevoegen nooit kwaad.
Nog een idee dat je later tegenkomt: als JavaScript een boolean nodig heeft maar een andere waarde krijgt, behandelt het enkele waarden als false. Deze falsy-waarden zijn false, 0, de lege string "", null, undefined en NaN. Al het andere, inclusief de strings "0" en "false", telt als true.
en && vereist beide true. of || vereist één true. niet ! keert het antwoord om.
| boolean | true of false |
| === | Strikte gelijkheid: dezelfde waarde en hetzelfde type |
| !== | Strikte ongelijkheid: niet hetzelfde |
| == | Losse gelijkheid: zet eerst typen om (vermijden) |
| && | en: alleen true als beide kanten true zijn |
| || | of: true als minstens één kant true is |
| ! | niet: keert true en false om |
| falsy | false, 0, "", null, undefined, NaN |
- Wat drukt deze code af?
console.log(7 > 7);- true
- false
- Wat drukt deze code af?
console.log(7 >= 7);- true
- false
- Wat drukt deze code af?
console.log(3 === "3");- true
- false
- Wat drukt deze code af?
console.log(3 == "3");- true
- false
- Wat drukt deze code af?
console.log(true && false);- true
- false
- Wat drukt deze code af?
console.log(true || false);- true
- false
- Wat drukt deze code af?
const x = 12; console.log(x > 10 && x < 20);- true
- false
- Wat drukt deze code af?
console.log(!(5 > 2));- true
- false
- Wat drukt deze code af?
console.log("Yes" === "yes");- true
- false
- Wat drukt deze code af?
console.log("apple" < "banana");- true
- false
- Welke waarde is falsy?
"0"0"false"
- Wat controleert correct of day "Sat" of "Sun" is?
day === "Sat" || "Sun"day === "Sat" || day === "Sun"day === "Sat" && day === "Sun"
- Vergelijkingen leveren true of false op.
- Gebruik === en !==; == zet typen om en geeft verrassingen.
- && vereist beide, || vereist één, ! keert om.
- Herhaal de volledige vergelijking aan elke kant van || en &&.
- Falsy-waarden: false, 0, "", null, undefined, NaN.
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