# Oefeningen

# Los volgende problemen op

# ReferenceError

// Opgave
console.log(myVariable);
1
2

# SyntaxError

// Opgave
if (x > 10)
console.log("x is groter dan 10");
1
2
3

# TypeError

// Opgave
var number = "42";
console.log(number + 2);
1
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
}
1
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);

1
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.

© 2025 Arteveldehogeschool Laatst bijgewerkt: 5/12/2023 15:52:22