8. Numbers - zainablfz/js-fundamentals GitHub Wiki

Numbers

Voor JavaScript maakt het niet uit of een nummer positief, negatief of decimalen heeft.

Numeric Separators

Als je grote getallen beter leesbaarder wil maken kan je _ gebruiken. Javascript leest dit niet.

Voorbeeld:

let nb = 1_000_000; // 1000000 (1 million)

Converting number to string

Je kan een nummer veranderen naar een string met de .toString() method.


let answer = 42;
answer.toString(); //"42"

NaN (Not a Number)

NaN staat voor "Not a Number". Vaak krijg je dit terug als er iets niet klopt in je code. Bijvoorbeeld als je een string probeert te vermenigvuldigen met een getal.

Convert string to number

Als je een string naar een nummer wil veranderen moet je de Number.parseInt() methode gebruiken.

let str = "42";
Number.parseInt(str, 10); //42
Deze methode verwacht 2 parameters. Namelijk string en radix: Number.parseInt(string, radix);.

De eerste parameter is de string die je wil omzetten naar een nummer.

De radix is de basis van het numerieke systeem die je wil gebruiken. In de meeste gevallen zul je 10 gebruiken. Dit is hoe wij in het dagelijks leven nummers tellen, het decimale systeem. Met digits 0-9.

Radix 2 representeert binary. Een systeem dat door computers gebruikt wordt.

Can I skip the radix?

Zelfs als de radix een optionele parameter is, moet je deze niet overslaan. Dat is omdat de default niet altijd 10 is. Gebruik dus altijd een radix.

Use cases for converting to a number

Er zijn meerdere redenen waarom je een string naar een nummer zou willen omzetten, maar de meest gebruikte is wanneer het nummer is ingevuld door de gebruiker in een tekstveld of wanneer het nummer vanuit de DOM gelezen wordt.

Als je vergeet om een string naar een nummer om te zetten, zal het opsommen hiervan eruitzien als concatenation:

let a = 10;
let b = "20"; // we forgot to convert it to a number
a + b; // "1020" (concatenation instead of sum)

De Number.parseInt() method zal proberen om de string die het krijgt om te zetten naar een nummer. Het werkt het best wanneer de string begint met een nummer en eindigt met een andere value:

Number.parseInt("123abc", 10); // 123
Number.parseInt("5 meters", 10); // 5