Number-Objekt
Das „Number“-Objekt
Variablen für Zahlen können als einfache Variablen oder als Objekte definiert werden. Wird einer Variablen eine Zahl zugewiesen, entsteht eine einfache Variable. Wird die Variable mit „new Number()“ angelegt, wird die Variable als Objekt definiert. Ein Werte-Vergleich zwischen einfachen Variablen und Objekten kann „wahr“ (true) sein, ein Typen-Vergleich liefert aber immer „falsch“ (false), so wie auch ein Vergleich zwischen zwei „Number“-Objekten:
HTML-Datei:
Ergebnis:
Beispiel 1
zahl1 =
typeof(zahl1) =
zahlObj1 =
typeof(zahlObj1) =
(zahl1 == zahlObj1) =
(zahl1 === zahlObj1) =
(zahlObj1 == zahlObj12) =
(zahlObj1 === zahlObj12) =
Eigenschaften des „Number“-Objekts
Die wichtigsten vordefinierten Eigenschaften des „Number“-Objekts:
- MAX_VALUE: Größte Zahl, die in JavaScript verwendet werden kann
- MIN_VALUE: Kleinste Zahl, die in JavaScript verwendet werden kann
- NEGATIVE_INFINITY: Minus Unendlich
- POSITIVE_INFINITY: Plus Unendlich
- NaN: (Not-a-Number) Wird verwendet, wenn eine Variable keine gültige Zahl ist
HTML-Datei:
Ergebnis:
Beispiel 2
Number.MAX_VALUE =
Number.MIN_VALUE =
Number.NEGATIVE_INFINITY =
Number.POSITIVE_INFINITY =
Number.NaN =
zahlObj2.MAX_VALUE =
Hinweis: Alle Eigenschaften des „Number“-Objekts können nur mit dem „Number“-Objekt selber verwendet werden und nicht mit eigenen, vom „Number“-Objekt abgeleiteten, Objekten!
Methoden des „Number“-Objekts
Die wichtigsten vordefinierten Methoden des „Number“-Objekts, die nur mit dem „Number“-Objekt selbst verwendet werden können:
- isFinite(): Prüft ob eine Zahl gültig und endlich ist
- isInteger(): Prüft ob es sich um eine gültige Zahl und eine Ganzzahl handelt
- isNaN(): Prüft, ob eine Zahl „NaN“ (Not-a-Number) entspricht
- isSafeInteger(): Prüft ob es sich um eine gültige Zahl und eine „sichere“ Ganzzahl handelt (sichere Ganzzahlen liegen im Wertebereich von (2^53 – 1) bis (-2^53 + 1))
HTML-Datei:
Ergebnis:
Beispiel 3
Number.isFinite(33) =
Number.isFinite(2 / 0) =
Number.isInteger(33) =
Number.isInteger(3 / 2) =
Number.isNaN(33) =
Number.isNaN("Hallo") =
Number.isNaN(NaN) =
Number.isNaN(2 / 0) =
Number.isNaN(0 / 0) =
Number.isSafeInteger(9e15) =
Number.isSafeInteger(10e15) =
Die wichtigsten vordefinierten Methoden des „Number“-Objekts, die auch mit eigenen Objekten verwendet werden können:
- toExponential(x): Konvertiert den Wert in eine Zeichenkette in Exponentialdarstellung
-
toFixed(x): Konvertiert den Wert in eine Zeichenkette mit festen Dezimalstellen
(dabei wird der Wert zunächst auf die entsprechende Dezimalstelle gerundet) -
toPrecision(x): Konvertiert den Wert in eine Zeichenkette mit fester Länge
(dabei wird der Wert zunächst auf die entsprechende Dezimalstelle gerundet) - valueOf(): Konvertiert den Wert in eine einfache Variable
- toString(): Konvertiert den Wert in eine Zeichenkette (dabei kann in Klammern eine Zahl zwischen 2 und 36 angegeben werden, die das auszugebende Zahlensystem angibt)
HTML-Datei:
Ergebnis:
Beispiel 4
zahlObj4.toExponential(3) =
zahlObj4.toFixed(2) =
zahlObj4.toPrecision(5) =
zahlObj4.valueOf() =
typeof(zahlObj4.valueOf()) =
zahlObj4.toString() =
zahlObj4.toString(2) =
zahlObj4.toString(16) =
Globale Methoden für Zahlen
Die wichtigsten globalen Methoden für Zahlen:
- Number(): Wandelt verschiedene Werte in Zahlen um
-
parseInt(): Wandelt eine Zeichenkette in eine Ganzzahl (Integer) um
(nimmt dabei immer nur den ersten gefundenen Zahlenausdruck) -
parseFloat(): Wandelt eine Zeichenkette in eine Gleitkommazahl (Float) um
(nimmt dabei immer nur den ersten gefundenen Zahlenausdruck)
HTML-Datei:
Ergebnis:
Beispiel 5
Number(5e3) =
Number(true) =
Number(false) =
Number("33") =
Number("Hallo") =
parseInt("10") =
parseInt("1234.56789") =
parseInt("10 / 5") =
parseInt("Hallo") =
parseFloat("10") =
parseFloat("1234.56789") =
parseFloat("10 / 5") =
parseFloat("Hallo") =
Abschlussübung
Als Abschlussübung kannst du folgende Seite erstellen, bei der du das Ergebnis der jeweiligen Anweisungen erraten sollst, bevor du auf „Ergebnis“ klickst:
Beispiel 6
((zahlObj6 == 33) && (zahl6 === zahlObj6.valueOf())) =
((2 * Number.MAX_VALUE) == Number.POSITIVE_INFINITY) =
Number((Number.isFinite(1 / 0)) + Number(Number.isInteger(4 / 2)) =
((12345.6789).toFixed(0) == (12345.6789).toPrecision(5)) =
((12345.6789).toFixed(0) == parseInt("12345.6789")) =
Die Lösung kannst du dir hier herunterladen: