# Oefeningen
# Los volgende problemen op
# ReferenceError
// Opgave
console.log(myVariable);
2
# SyntaxError
// Opgave
if (x > 10)
console.log("x is groter dan 10");
2
3
# TypeError
// Opgave
var number = "42";
console.log(number + 2);
2
3
# checkPositive
Schrijf een functie die een RangeError werpt als het argument kleiner is dan 0.
// Opgave
function checkPositive(value) {
// TODO: Implementeer de functie
}
2
3
4
# devideNumbers
Maak een functie genaamd divideNumbers die twee parameters, num1 en num2, accepteert. Binnen de functie, controleer of num2 gelijk is aan 0. Als dat het geval is, gooi dan een nieuwe foutmelding met de boodschap “Kan niet door nul delen”. Anders, retourneer het resultaat van de deling van num1 door num2.
# calculateArea
Maak een functie genaamd calculateArea die twee parameters, width en height, accepteert. Binnen de functie, controleer of width of height kleiner is dan of gelijk aan 0. Als een van beide het geval is, gooi dan een nieuwe foutmelding met de boodschap “Ongeldige afmetingen”. Anders, retourneer het resultaat van het vermenigvuldigen van width met height.
# findElement
Maak een functie genaamd findElement die een array arr en een waarde element accepteert. Binnen de functie, controleer of arr een array is. Als dat niet het geval is, gooi dan een nieuwe TypeError met de boodschap “Ongeldige invoer: arr moet een array zijn”. Controleer vervolgens of element aanwezig is in de array. Als dat het geval is, retourneer dan de index van het element. Als dat niet het geval is, gooi dan een nieuwe foutmelding met de boodschap “Element niet gevonden”.
# badCode
Zorg ervoor dat je geen errors meer krijgt bij het uitvoeren van de code. Je mag alleen maar dingen aanpassen en toevoegen, niet verwijderen.
function complexFunction(input) {
// Fout 1: Ontbrekende declaratie
let result = "";
// Fout 2: Onjuist gebruik van een ongedefinieerde variabele
result += unknownVariable;
// Fout 3: SyntaxError door onjuiste if-blokopmaak
if (input > 0)
console.log("Input is positief");
// Fout 4: TypeError door het proberen toe te voegen van een string aan een getal
result += input + 10;
// Fout 5: ReferenceError door het oproepen van een niet-bestaande functie
nonExistentFunction();
// Fout 6: Gebruik van een gereserveerd woord als variabelenaam
let let = "Dit is een waarde";
// Fout 7: Proberen een string als een getal te gebruiken
let num = parseInt("niet-een-getal");
console.log(num);
// Fout 8: Divisie door nul
let divisionResult = input / 0;
console.log(divisionResult);
// Fout 9: Onjuist gebruik van de try-catch-functie
try {
// Fout 10: Het oproepen van een ongedefinieerde methode
"hello".touppercase();
} catch {
console.log(error.message);
}
// Fout 11: Het gebruik van een verouderde URI-coderingsfunctie
decodeURI('%E0%A4%A');
return result;
}
// Test de functie met een willekeurige invoer
const resultaat = complexFunction(5);
console.log(resultaat);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# FetchData
Schrijf een functie genaamd fetchData die gegevens van een externe API ophaalt met behulp van het fetch statement. Gebruik een try…catch statement om netwerkfouten af te handelen. Druk in het geval van een fout de boodschap “Kon geen gegevens ophalen” af.
Gebruik volgende url om de data op te halen:
https://api.publicapis.org/entries
# Excelleren
# userInput
Schrijf een programma dat de gebruikersinvoer vraagt en met try…catch de invoer valideert. Gooi een aangepaste fout als de invoer geen getal is.
Gebruik hiervoor const userInput = prompt("Voer een getal in:"); in een HTML-bestand.
# URIError
Creëer een functie genaamd decodeSafe die een URIError werpt als de decodeURIComponent functie een fout veroorzaakt.
# ErrorKlasse
Aangepaste Error Klasse: Maak een aangepaste error klasse genaamd ValidationError die overerft van het Error object. Deze error klasse moet een extra eigenschap field bevatten die de naam van het veld aangeeft waar de validatiefout is opgetreden. Schrijf een functie genaamd validateEmail die een e-mailadres controleert en bij een fout een instantie van de ValidationError werpt met het veld ‘email’ en een aangepaste foutboodschap.
# ErrorKlasse gebruiken
Fout Afhandelen met Aangepaste Klasse: Schrijf een functie genaamd processForm die een formulierobject ontvangt en probeert dit te verwerken. Roep de validateEmail functie aan binnen processForm en vang de ValidationError af om een foutboodschap af te drukken met het specifieke veld en de foutboodschap.