# Bewerkingen

# Rekenen met getallen

Wiskundige berekeningen in Javascript lijken zeer sterk op de bewerkingen die we als mens uitvoeren en neerschrijven. Er is enkel een klein verschil in wiskundige tekens voor sommige bewerkingen die je moet memorizeren.

Bewerking Operator
Optellen +
Aftrekken -
Vermenigvuldigen *
Delen /
Restdeling (modulo) %
Machtsverheffing **
Increment (1 optellen) ++
Decrement (1 aftrekken) --

Je kan de bewerkingen uitvoeren als deel van een expressie. Expressies zijn Javascript opdrachten die een waarde teruggeven. In het geval van een wiskundige bewerking is de teruggegeven waarde het resultaat van de berekening. Expressies kunnen alleen aan de rechterkant van een toewijzingsopdracht (opdracht met een =) gebruikt worden.

const rekensom = 5 + 9 - 3;
// Het resultaat van de bewerking steekt in de variabele.
console.log(rekensom);

In de plaats van letterlijke getallen kunnen ook variabelen die getallen bevatten in de bewerkingen gebruikt worden. Dit is logisch, want bij het gebruik van variabelen wordt onmiddellijk de inhoudelijke waarde in de plaats gezet.

const getal1 = 5;
const getal2 = 3;

const rekensom = getal1 + 9 - getal2;
console.log(rekensom);

Wiskundige berekeningen in Javascript houden zich ook aan de voorgeschreven regels voor de volgorde van de bewerkingen. Zo heeft een vermenigvuldiging voorrang op een optelling en krijgen ronde haken () de hoogste voorrang. Voor de rest gebeurt de berekening van links naar rechts.

const bewerking = (4 + 3 * 12 - (2 + 6) / 2) ** 2;

// Resultaat is 1296
console.log(bewerking)

In het bovenstaande voorbeeld worden de bewerkingen in deze volgorde behandeld:

  1. Binnenste ronde haken: (2 + 6)
  2. Buitenste ronde haken: (4 + 3 * 12 - (2 + 6) / 2)
    1. Vermenigvuldiging: 3 * 12
    2. Deling: 8 / 2 (de ronde haken werden al berekend)
    3. Optellen en aftrekken: 4 + 36 - 4
  3. Machtsverheffing: 36 ** 2

# Rekenen met strings

Je weet al dat het bewerkingsteken + ook kan gebruikt worden op strings aan elkaar te plakken (concatenatie). De andere bewerkingstekens zullen echter de inhoud van de string proberen om te zetten naar een geldig getal en daarmee verder rekenen. Wanneer dit niet lukt krijgt het resultaat de waarde NaN (Not a Number).

// De volgende variabelen bevatten strings als waardes
const getal1 = "14";
const getal2 = "7";

console.log(getal1 + getal2); // Resultaat: 147 (concatenatie)
console.log(getal1 - getal2); // Resultaat: 7 (wiskundige bewerking)

const getal3 = "vijf";
console.log(getal3 * 2); // Resultaat: NaN

Maar wat als je twee strings, waarin hopelijk geldige getallen zitten, toch wil optellen als een numerieke bewerking? De truc is om de string eerst expliciet om te zetten naar een getal. Je kan dit (onder andere) doen via de Number() methode. De methode neemt als argument binnen de ronde haken de string aan die je naar een getal wil converteren en geeft het geconverteerde getal als waarde terug.

// De volgende variabelen bevatten strings als waardes
const getal1 = "14";
const getal2 = "7";

console.log(Number(getal1) + Number(getal2)); // Resultaat: 21