prompt en alert
Wat ga je leren?
Je leert twee ingebouwde JavaScript-functies waarmee je snel met de gebruiker kunt communiceren: alert() toont een berichtvenster, prompt() vraagt om invoer.
Theorie
In Formulier-data ophalen gebruikte je een formulier om invoer op te halen. Voor snelle demo's en oefeningen kan dat ook simpeler — met twee browser-ingebouwde functies:
alert() — toon een berichtvenster
alert('Hallo wereld!');
Een pop-up venster verschijnt met je tekst en een OK-knop. De code wacht tot de gebruiker op OK klikt.
prompt() — vraag om invoer
const naam = prompt('Hoe heet je?');
Een pop-up venster vraagt om tekst. Wat de gebruiker typt komt in naam te staan (als string). Klikt de gebruiker op Cancel, dan is naam gelijk aan null.
Beide combineren
const naam = prompt('Hoe heet je?');
alert('Welkom, ' + naam + '!');
- Wel: snelle demo, mini-oefening, één losse vraag.
- Niet: echte website. Pop-ups zijn storend, blokkeren de pagina, en kunnen niet gestyled worden. Gebruik daar formulieren voor.
Predict
Wat verschijnt er in de console als de gebruiker "16" typt in deze code?
const leeftijd = prompt('Hoe oud ben je?');
console.log(leeftijd + 4);
Klik hier voor het antwoord
164. prompt() geeft altijd een string terug — ook bij getallen. '16' + 4 is dus string-concatenatie: '16' + '4' wordt '164'. Wil je rekenen, dan moet je Number(prompt(...)) gebruiken.
Probeer het zelf!
Investigate
Experimenteer:
- Klik op de knop en klik bij de prompt direct op Cancel — wat verandert er op de pagina? (Tip:
naamis dannull) - Vraag in een tweede
promptom leeftijd. Toon ook die in dealert. - Verander
if (naam)inif (naam !== null)— werkt het hetzelfde?
Modify
Opdracht: Vraag de gebruiker om twee getallen en toon de som in een alert.
Tip
Vergeet niet Number() om de strings naar getallen te zetten — anders worden ze geplakt in plaats van opgeteld (zie Waarden en operatoren).
Antwoord
function telOp() {
const a = Number(prompt('Eerste getal:'));
const b = Number(prompt('Tweede getal:'));
alert('Som: ' + (a + b));
}
Make
Opdracht: Bouw een mini-quiz. Stel via prompt een vraag met meerdere mogelijke antwoorden (bijv. "Wat is de hoofdstad van Nederland?"). Vergelijk het antwoord met het juiste antwoord en geef via alert feedback ("Goed!" of "Fout, het was..."). Tip: gebruik .toLowerCase() om hoofdletters te negeren.
Tip
antwoord.toLowerCase() === 'amsterdam' — zo accepteer je "amsterdam", "Amsterdam" en "AMSTERDAM".
Antwoord
function quiz() {
const antwoord = prompt('Wat is de hoofdstad van Nederland?');
if (antwoord && antwoord.toLowerCase() === 'amsterdam') {
alert('Goed gedaan!');
} else {
alert('Fout. Het juiste antwoord is Amsterdam.');
}
}
Er gaat iets mis
prompt geeft een string, ook bij getallen
const aantal = prompt('Hoeveel?'); // bijv. "5"
const totaal = aantal * 2; // werkt: '5' * 2 = 10
const verkeerd = aantal + 1; // werkt NIET: '5' + 1 = '51'
Vermenigvuldigen werkt soms toevallig (JS converteert automatisch bij *, -, /), maar + plakt strings. Dat is dezelfde val als bij <input>.value (zie Formulier-data ophalen). Wikkel altijd Number(...) om numerieke invoer:
const aantal = Number(prompt('Hoeveel?'));