JavaScript-Zahlen
- Vorherige Seite JS String-Templates
- Nächste Seite JS BigInt
JavaScript hat nur einen Numeriktyp.
Bei der Schreibung einer Zahl kann ein Dezimalpunkt hinzugefügt werden oder nicht.
JavaScript Zahl
JavaScript-Werte können sowohl mit als auch ohne Dezimalpunkt notiert werden:
Beispiel
var x = 3.14; // Wert mit Dezimalpunkt var y = 3; // Wert ohne Dezimalpunkt
Große oder kleine Zahlen können in wissenschaftlicher Notation geschrieben werden:
Beispiel
var x = 123e5; // 12300000 var y = 123e-5; // 0.00123
JavaScript-Zahlen sind immer 64-Bit-Fließkommazahlen
Im Gegensatz zu vielen anderen Programmiersprachen definiert JavaScript keine verschiedenen Arten von Zahlen, wie Ganzzahlen, kurze, lange, Fließkommazahlen usw.
JavaScript speichert numerische Werte immer als Double-Precision-Fließkommazahlen, gemäß dem internationalen IEEE 754-Standard.
Dieser Format speichert die numerischen Werte in 64 Bit, wobei die Stellen 0 bis 51 die Ziffern (Teile) und die Stellen 52 bis 62 den Exponenten, die Stelle 63 das Zeichen speichern:
Wert(aka Fraction/Mantissa) | Exponent | Zeichen |
---|---|---|
52 Bits(0 - 51) | 11 Bits (52 - 62) | 1 Bit (63) |
Genauigkeit
Ganze Zahlen (ohne Exponenten oder wissenschaftliche Notation) werden auf 15 Stellen genau berechnet.
Beispiel
var x = 999999999999999; // x wird 999999999999999 sein var y = 9999999999999999; // y wird 10000000000000000 sein
Das maximale Dezimalzahl ist 17 Stellen, aber die Fließkommadarstellung ist nicht immer 100% genau:
Beispiel
var x = 0.2 + 0.1; // x wird 0.30000000000000004 sein
Die Verwendung von Multiplikation und Division hilft, das obige Problem zu lösen:
Beispiel
var x = (0.2 * 10 + 0.1 * 10) / 10; // x wird 0.3 sein
Zahl und Zeichenkette addieren
Warnung !!
JavaScript verwendet den Plus-Operator (+) sowohl für die Addition als auch für die Kollage.
Zahlen werden mit der Addition verwendet. Zeichenketten mit der Kollage.
Fügen Sie zwei Zahlen hinzu, das Ergebnis wird eine Zahl sein:
Beispiel
var x = 10; var y = 20; var z = x + y; // z wird 30 (eine Zahl) sein
Fügen Sie zwei Zeichenketten hinzu, das Ergebnis ist eine Zeichenkettenkollage:
Beispiel
var x = "10"; var y = "20"; var z = x + y; // z wird 1020 (String) sein
Fügen Sie eine Zahl und eine Zeichenkette hinzu, das Ergebnis ist auch eine Zeichenkettenkollage:
Beispiel
var x = 10; var y = "20"; var z = x + y; // z wird 1020 (eine Zeichenkette) sein
Wenn Sie eine Summe aus einem String und einer Zahl addieren, wird das auch eine String-Kettenoperation sein:
Beispiel
var x = "10"; var y = 20; var z = x + y; // z wird 1020 (String) sein
Ein häufiger Fehler ist die Annahme, dass das Ergebnis 30 sein sollte:
Beispiel
var x = 10; var y = 20; var z = "The result is: " + x + y;
Ein häufiger Fehler ist die Annahme, dass das Ergebnis 102030 sein sollte:
Beispiel
var x = 10; var y = 20; var z = "30"; var result = x + y + z;
JavaScript führt die Kompilierung von links nach rechts durch.
weil x und y beide Zahlen sind, wird 10 + 20 addiert.
weil z ein String ist, wird "30" + "30" zusammengefügt.
Zahlen-String
JavaScript-Strings können numerische Inhalte haben:
var x = 100; // x ist eine Zahl var y = "100"; // y ist ein String
In allen numerischen Operationen versucht JavaScript, Strings in Zahlen umzuwandeln:
Dieser Fall funktioniert so:
var x = "100"; var y = "10"; var z = x / y; // z wird 10 sein
Dieser Fall wird auch so funktionieren:
var x = "100"; var y = "10"; var z = x * y; // z wird 1000 sein
Dieser Fall funktioniert so:
var x = "100"; var y = "10"; var z = x - y; // z wird 90 sein
aber dieser Fall wird nicht wie oben funktionieren:
var x = "100"; var y = "10"; var z = x + y; // z wird nicht 110 sein (sondern 10010)
Im letzten Beispiel führt JavaScript den +-Operator für Strings zusammen.
NaN - nicht numerisch
NaN
ist ein reserviertes Wort in JavaScript, das angibt, dass eine Zahl keine gültige Zahl ist.
Wenn Sie eine Division mit einem nicht-numerischen String versuchen, erhalten Sie NaN (Not a Number):
Beispiel
var x = 100 / "Apple"; // x wird NaN (Not a Number) sein
aber wenn der String numerische Werte enthält, wird das Ergebnis eine Zahl sein:
Beispiel
var x = 100 / "10"; // x wird 10 sein
Sie können die globale JavaScript-Funktion verwenden isNaN()
um zu bestimmen, ob ein Wert eine Zahl ist:
Beispiel
var x = 100 / "Apple"; isNaN(x); // zurückgibt true, weil x kein Zahl ist
vorsichtig sein NaN
。Wenn Sie in mathematischen Operationen NaN
dann wird das Ergebnis auch NaN
:
Beispiel
var x = NaN; var y = 5; var z = x + y; // z wird NaN sein
Das Ergebnis könnte eine Kettenschaltung sein:
Beispiel
var x = NaN; var y = "5"; var z = x + y; // z wird NaN5 sein
NaN
ist eine Zahl,typeof NaN
gibt zurück number
:
Beispiel
typeof NaN; // gibt "number" zurück
Infinity
Infinity
oder -Infinity
)ist der Wert, der von JavaScript zurückgegeben wird, wenn bei der Berechnung von Zahlen der Bereich der möglichen Zahlenwerte überschritten wird.
Beispiel
var myNumber = 2; while (myNumber != Infinity) { // führt bis Infinity aus myNumber = myNumber * myNumber; }
Das Teilen durch 0 (Null) erzeugt auch Infinity
:
Beispiel
var x = 2 / 0; // x wird Infinity sein var y = -2 / 0; // y wird -Infinity sein
Infinity
ist eine Zahl:typeOf Infinity
gibt zurück number
.
Beispiel
typeof Infinity; // gibt "number" zurück
Hexadezimal
JavaScript interpretiert Zahlen mit dem Präfix 0x
Zahlkonstanten werden als Hexadezimal interpretiert.
Beispiel
var x = 0xFF; // x wird 255 sein.
Schreiben Sie niemals Zahlen mit führenden Nullen (z.B. 07).
Einige JavaScript-Versionen interpretieren Zahlen mit führenden Nullen als Oktal.
Standardmäßig zeigt Javascript Zahlen in dezimaler Bruchkommazahl an.
Sie können jedoch toString()
Diese Methode gibt die Zahl in Hexadezimal-, Octal- oder Binärform aus.
Beispiel
var myNumber = 128; myNumber.toString(16); // gibt 80 zurück myNumber.toString(8); // gibt 200 zurück myNumber.toString(2); // gibt 10000000 zurück
Zahlen können auch Objekte sein
Normalerweise werden JavaScript-Zahlen durch Literalwerte erstellt: var x = 123
Es kann aber auch durch den Schlüsselwort new
definiert als Objekt: var y = new Number(123)
Beispiel
var x = 123; var y = new Number(123); // typeof x gibt number zurück // typeof y gibt object zurück
Erstellen Sie keine numerischen Objekte. Dies kann die Ausführungszeit verlängern.
new
Der Schlüsselwort verkompliziert den Code und führt zu unerwarteten Ergebnissen:
Wenn Sie ==
Nach dem Gleichheitsoperator erscheinen gleiche Zahlen gleich:
Beispiel
var x = 500; var y = new Number(500); // (x == y) ist wahr, weil x und y gleiche Werte haben
Wenn Sie ===
Nach dem Gleichheitsoperator werden gleiche Zahlen ungleich, weil ===
Operatoren müssen sowohl Typ als auch Wert gleich sein.
Beispiel
var x = 500; var y = new Number(500); // (x === y) ist falsch, weil x und y unterschiedliche Typen haben
Selbst noch schlimmer. Objekte können nicht verglichen werden:
Beispiel
var x = new Number(500); var y = new Number(500); // (x == y) ist falsch, weil Objekte nicht verglichen werden können
JavaScript-Objekte können nicht verglichen werden.
- Vorherige Seite JS String-Templates
- Nächste Seite JS BigInt