Les 2: Variabelen en datatypes
Home โ€บJavaScript-track โ€บLes 2

๐Ÿ“ฆ Variabelen en datatypes

โฑ Geschatte leestijd: 20 minuten ยท 7 stappen

In de vorige les schreef je je eerste JavaScript-code met console.log(). Nu leer je variabelen: de manier waarop je informatie opslaat en hergebruikt in je programma. Ook maak je kennis met de belangrijkste datatypes en template literals.

1 let vs const

Wat betekent dit?

Een variabele is een benoemde opslagplaats voor een waarde. In modern JavaScript gebruik je let en const. Met let kun je de waarde later opnieuw toewijzen, met const niet.

let en const
let leeftijd = 17;
leeftijd = 18;          // โœ“ toegestaan met let
console.log(leeftijd);  // 18

const naam = "Sara";
// naam = "Daan";       // โœ— TypeError โ€” const kan niet opnieuw worden toegewezen
console.log(naam);      // Sara

๐Ÿšซ Gebruik nooit var! var heeft functie-scope in plaats van block-scope, wat tot verwarrende bugs leidt. Gebruik altijd const (standaard) en let wanneer je de waarde moet aanpassen.

2 Datatypes: string en number

JavaScript heeft meerdere datatypes โ€” soorten waarden die je kunt opslaan. De meest gebruikte zijn strings en numbers.

String en number
// String: tekst tussen aanhalingstekens
const voornaam = "Daan";
const achternaam = 'de Vries';  // enkele of dubbele quotes

// Number: getal zonder aanhalingstekens
const leeftijd = 20;
const prijs = 9.99;

// โš ๏ธ Opgelet: string + number = string!
console.log("Leeftijd: " + leeftijd); // "Leeftijd: 20"
console.log("5" + 3);                 // "53"  โ† string!
console.log(5 + 3);                   // 8     โ† number

๐Ÿ’ก Tip: De +-operator met een string doet aaneenschakeling (concatenation), niet optelling. In stap 5 leer je hoe je dit netjes oplost met template literals.

3 Boolean, null en undefined

Drie bijzondere datatypes

Boolean heeft slechts twee mogelijke waarden: true of false. Handig voor aan/uit-condities.
null gebruik je om bewust aan te geven dat er geen waarde is.
undefined krijg je automatisch als een variabele gedeclareerd is maar nog geen waarde heeft.

Boolean, null, undefined
const isStudent = true;
const heeftRijbewijs = false;
console.log(isStudent);       // true

const geselecteerd = null;    // bewust leeg
console.log(geselecteerd);    // null

let score;                    // gedeclareerd maar niet toegewezen
console.log(score);           // undefined

4 De typeof-operator

Wat betekent dit?

Met typeof kun je opvragen welk datatype een waarde of variabele heeft. Het geeft een string terug zoals "string", "number", "boolean", "undefined" of "object".

typeof voorbeelden
console.log(typeof "Hallo");    // "string"
console.log(typeof 42);         // "number"
console.log(typeof true);       // "boolean"
console.log(typeof undefined);  // "undefined"
console.log(typeof null);       // "object"  โ† bekende JavaScript-eigenaardigheid!

const naam = "Sara";
console.log(typeof naam);       // "string"

๐Ÿ’ก Wist je dat? typeof null geeft "object" terug โ€” dat is een historische bug in JavaScript die om compatibiliteitsredenen nooit is opgelost. Onthoud gewoon dat null geen object is!

5 Template literals

Wat betekent dit?

Template literals zijn strings die je schrijft met backticks (`) in plaats van aanhalingstekens. Met ${'{'}expressie{'}'} kun je variabelen en berekeningen direct in de string invoegen. Ze ondersteunen ook meerdere regels.

Template literals
const naam = "Sara";
const leeftijd = 20;

// Oude manier (string concatenation)
console.log("Hallo, " + naam + "! Je bent " + leeftijd + " jaar oud.");

// Template literal (aanbevolen)
console.log(`Hallo, ${naam}! Je bent ${leeftijd} jaar oud.`);

// Expressies zijn ook mogelijk
console.log(`Volgend jaar ben je ${leeftijd + 1}.`);

// Meerdere regels
const bericht = `Beste ${naam},
Welkom op het platform!`;
console.log(bericht);

โœ“ Gebruik altijd template literals wanneer je variabelen in een string wilt invoegen. Ze zijn leesbaarder dan string concatenation met +.

6 Oefening 1: Variabelen en typeof

Opdracht:

Declareer vier variabelen: naam (string), leeftijd (number), isStudent (boolean) en een vierde naar keuze. Log elke variabele samen met typeof.

โœ“ Minimaal 4 variabelen gedeclareerd met let of const

โœ“ typeof gebruikt

editor
Console output

7 Eindopdracht: Persoonsprofielpagina

Opdracht:

Maak variabelen voor een persoonsprofielprofiel (naam, leeftijd, stad, en minimaal รฉรฉn andere). Log daarna een template literal met een volledige zin, bijvoorbeeld: "Mijn naam is Sara en ik ben 20 jaar oud."

โœ“ Minimaal 3 variabelen gedeclareerd

โœ“ Een template literal met backticks (`) en ${'$'}{'{'}...{'}'}

editor
Console output
๐Ÿ“„ Volledig voorbeeld: variabelen.js
// โ”€โ”€ let vs const โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
let score = 0;
score = 10;            // โœ“ let mag opnieuw toegewezen worden

const naam = "Sara";  // const mag NIET opnieuw worden toegewezen

// โ”€โ”€ Datatypes โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
const voornaam  = "Daan";      // string
const leeftijd  = 20;          // number
const isStudent = true;        // boolean
const geselecteerd = null;     // null (bewust leeg)
let onbekend;                  // undefined (nog niet toegewezen)

// โ”€โ”€ typeof โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
console.log(typeof voornaam);   // "string"
console.log(typeof leeftijd);   // "number"
console.log(typeof isStudent);  // "boolean"
console.log(typeof null);       // "object"  โ† historische bug in JS

// โ”€โ”€ Template literals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
const stad = "Amsterdam";
console.log(`${naam} woont in ${stad} en is ${leeftijd} jaar oud.`);
console.log(`Volgend jaar is ${naam} ${leeftijd + 1}.`);