Inhoud

  1. Geen paragrafen H1 - Voorwoord
  2. Geeft paragrafen weer H2 - Wat is JavaScript?
    1. §1. Wat kun je met JavaScript?
    2. §2. De script-tag
    3. §3. Opdrachten
  3. Geeft paragrafen weer H3 - Statements (opdrachten)
    1. §1. Wat zijn statements?
    2. §2. Functie document.write
    3. §3. Commentaar
    4. §4. Functie alert
    5. §5. Opdrachten
  4. Geeft paragrafen weer H4 - Variabelen
    1. §1. Wat is een variabele?
    2. §2. Variabelen maken en gebruiken
    3. §3. Functie prompt
    4. §4. Operatoren
    5. §5. Strings
    6. §6. Opdrachten
  5. Geeft paragrafen weer H5 - Functies
    1. §1. Wat is een functie?
    2. §2. Functies maken en gebruiken
    3. §3. Functies die iets teruggeven
    4. §4. Parameters en argumenten
    5. §5. De scope van variabelen
    6. §6. Opdrachten
  6. Geeft paragrafen weer H6 - Loops en voorwaarden
    1. §1. Wat zijn loops en voorwaarden?
    2. §2. Het if-else statement
    3. §3. Vergelijkingen en hun operatoren
    4. §4. Functie confirm
    5. §5. Het switch-statement
    6. §6. De while-loop
    7. §7. De for-loop
    8. §8. Stoppen door break
    9. §9. Opdrachten
  7. Geeft paragrafen weer H7 - Events
    1. §1. Wat is een event?
    2. §2. Events maken en gebruiken
    3. §3. Welke events zijn er?
    4. §4. Variabele this
    5. §5. Variabele window.event
    6. §6. Opdrachten
  8. Geeft paragrafen weer H8 - Array
    1. §1. Wat is een Array?
    2. §2. Een Array maken en gebruiken
    3. §3. Een Array doorlopen
    4. §4. Een associatieve array
    5. §5. De for-in loop
    6. §6. Opdrachten
  9. Geeft paragrafen weer H9 - Objecten
    1. §1. Wat is een object?
    2. §2. Verschil object en variabele
    3. §3. Eigenschappen
    4. §4. Methodes
    5. §5. Eigenschappen en methodes
    6. §6. Opdrachten
  10. Geeft paragrafen weer H10 - Globale objecten
    1. §1. Wat zijn globale objecten?
    2. §2. Het window object
    3. §3. Het document object
    4. §4. Het Math object
    5. §5. Standaard HTML-Element object
    6. §6. Een HTML-Table object
    7. §7. Opdrachten

Hoofdstuk 5 - Opdracht 2

De opdracht:

Hetzelfde als opdracht 1. Alleen nu maak je niet een functie product maar een functie som, die dus, zoals de naam al zegt, de twee getallen bij elkaar optelt. Verder moet de functie niet het resultaat weergeven, maar teruggeven. Schrijf wederom een stukje code om de functie 3x te testen en het resultaat met een alert-boxje weer te geven.
Je zit nu alleen met het probleem dat prompt() eigenlijk een string teruggeeft (dus niet gewoon 5 maar eigenlijk '5'). JavaScript zet een string automatisch om in een getal als dat nodig is en als dat kan. Dus als je '5'*'6' schrijft dan worden ze omgezet naar getallen en is de uitkomst 30 (want je kan geen strings met elkaar vermenigvuldigen, maar wel getallen). Een probleem ontstaat wanneer je de strings optelt, '5'+'6' zal '56' opleveren, en niet 11. Dit komt omdat je wel twee strings bij elkaar op kan tellen en dus is het niet nodig ze om te zetten in een getal.
Zoek dus in deze functie zelf een manier om te voorkomen dat je twee aan elkaar geplakte strings krijgt, en daarvoor in de plaats gewoon de som van die 2 ingevoerde getallen (je mag er weer vanuit gaan dat er geldige getallen ingevoerd worden).

Het antwoord:

In opdracht 1 had je gezien dat een string omgezet wordt in een getal als de string een getal bevat en het nodig is om de string naar een getal om te zetten. Dit gebeurde doordat je vermenigvuldigde, wat niet kan bij strings, maar wel bij getallen. Door datzelfde trucje toe te passen in deze opdracht kun je het probleem van het optellen oplossen. Je vermenigvuldigt de string gewoon met 1, door de vermenigvuldiging zal de string in een getal omgezet worden en verandert de waarde niet.

JavaScript:
  1. function som()
  2. {
  3. var a = 1*prompt("Geef het eerste getal op", 0); // Door de 1* wordt het een getal ipv een string
  4. var b = 1*prompt("Geef het tweede getal op", a); // idem
  5. return a+b;
  6. }
  7.  
  8. // Roep de functie 3x aan:
  9. alert("De som van de getallen is: "+som());
  10. alert("De som van de getallen is: "+som());
  11. alert("De som van de getallen is: "+som());