Ein Zahlenwert besteht aus einer beliebigen Reihe numerischer Zeichen. Zum Beispiel:
5
Der Zahlendatentyp umfasst
auch einige spezielle globale Eigenschaften,
numerische Konzepte wie Infinity
und NaN
darstellen – ein Wert für
„keine Zahl“, ein potenzielles Ergebnis des Versuchs, mathematische
auf Nicht-Zahlen-Werte anwenden.
Zahlenobjekt
Wenn ein Wert an die Funktion Number()
übergeben wird, wird dieser Wert in
das Zahlenäquivalent. So führt z. B. ein numerischer String zu einer Entsprechung
Primitiv Zahlen:
Number( "10" );
> 10
Beim Übergeben eines false
- oder null
-Werts an Number()
wird 0
zurückgegeben und true
gibt Folgendes zurück:
1
Number( null );
> 0
Number( false );
> 0
Number( true );
> 1`
Wenn ein Wert nicht konvertiert werden kann, wie im Fall von undefined
oder einem String
die nicht-numerische Zeichen enthält, gibt die Number
-Funktion NaN
zurück:
Number( undefined );
> NaN
Number( "The number 3." );
> NaN
Wie unter prototypisierte Übernahme beschrieben,
gibt es wahrscheinlich wenig bis gar keinen Grund, das Number
-Objekt als
da er ein Number
-Objekt anstelle eines Zahlenliterals erstellt.
let numObject = new Number( 15 );
numObject;
> Number { 15 }
Dieses Objekt verhält sich wie sein zugewiesener Wert für mathematische Operationen, aber es keine strengen Gleichheitsvergleiche mit Zahlenliteralen scheitert, weil die Datentypen nicht übereinstimmen, ohne einen praktischen Vorteil gegenüber einem Literalwert zu bieten.
let tenObject = new Number( 10 );
tenObject + 5;
> 15
tenObject === 10;
> false
Gleitkommazahlen und Ganzzahlen
JavaScript hat nur einen Zahlentyp: 64-Bit IEEE 754-1985 mit doppelter Genauigkeit
Gleitkommazahlen zwischen
-2^1024
und 2^1024
. Bevor JavaScript eine Zahl im Arbeitsspeicher speichert,
wandelt diese Zahl in eine binäre Gleitkommazahl um, die auch als Gleitkommazahl bezeichnet wird.
Dieser 64-Bit-Speicher (ein Bit mit positivem oder negativem Vorzeichen, 11 Bit für ein Exponent und 52 Bit für einen Bruch) können Genauigkeitsfehler mit einer beliebigen Zahl verursachen. die nicht in einen zulässigen Bereich fallen. Diese Einschränkung ist inhärent zum JavaScript-Datentyp Zahlen hinzu.
0.1 + 0.7
> 0.7999999999999999
Ein Zahlenwert kann stattdessen als Ganzzahl, eine Gleitkommazahl,
ohne Bruchzahl zwischen -(2^53 − 1)
und 2^53 − 1
. Da Gleitkommazahlen und
werden ganze Zahlen auf dieselbe
Grundlage gespeichert, es gibt keinen praktischen Unterschied.
wie diese Zahlen funktionieren. Wir empfehlen jedoch, immer ganze Zahlen zu verwenden,
Genauigkeitsfehler vermeiden.
Zahlenoperatoren
Wenn Sie mathematische Standardoperatoren mit Zahlen Primitiven verwenden, mathematische Rechenreihenfolge gilt: Alle Ausdrücke in Klammern werden zuerst ausgewertet, Exponenten, Multiplikation, Division, Addition und Subtraktion.
Operator | Name | Beschreibung | Nutzung | Ergebnis |
---|---|---|---|---|
+ |
Ergänzung | 2+2 |
4 |
|
- |
Subtraktion | 4-2 |
2 |
|
* |
Multiplikation | 2*5 |
10 |
|
/ |
Abteilung | 10/5 |
2 |
|
++ |
Erhöhen | Fügt eins zu einer Zahl hinzu | 2++ |
3 |
-- |
Verringern | Subtrahiert eins von einer Zahl | 3-- |
2 |
** |
Exponent | Gibt das Ergebnis für das Auslösen der ersten zurück mit dem zweiten Operanden hoch. |
2**4 |
16 |
% |
Restwert | Gibt den Rest zurück, der übrig bleibt, wenn der erste Operand wird durch den zweiten Operand geteilt. |
12%5 |
2 |
Sie können auch mathematische Zuweisungsoperatoren verwenden, um eine mathematische eine Operation mit dem Wert einer Variablen durchführen und diese neu berechneten Wert in die Variable ein.
Operator | Name | Nutzung |
---|---|---|
+= |
Zuweisung zum Hinzufügen | myValue += 2 |
-= |
Zuweisung zum Entfernen | myValue -= 2 |
*= |
Multiplikationszuweisung | myValue *= 2 |
/= |
Zuweisung von Abteilungen | myValue /= 2 |
**= |
Exponentenzuweisung | myValue **= 2 |
%= |
Verbleibende Zuweisung | myValue %= 2 |
Symbolische Werte
Das Zahlenprivileg gilt auch für einige Sonderfälle: "keine Zahl"
Wert (NaN
) und einem Wert, der eine Unendlichkeit darstellt, der entweder positiv sein kann
(Infinity
) oder negativ (-Infinity
) aus.
Das Ergebnis einer Division durch null ist Infinity
selten.
in denen die meisten Programmiersprachen stattdessen einen Fehler ausgeben:
10 / 0
> Infinity
Denken Sie daran, dass bei JavaScript zwischen Groß- und Kleinschreibung unterschieden wird. Infinity
ist ein Zahlendatentyp
steht für das Konzept der Unendlichkeit, aber infinity
hat keine besondere Bedeutung:
Infinity
> Infinity
infinity
> Uncaught ReferenceError: infinity is not defined
NaN
(d. h. „Keine Zahl“)
häufiger auftreten, wenn das Ergebnis einer arithmetischen Operation
kann nicht als Zahl ausgedrückt werden. Da JavaScript z. B. versucht,
Datentyp aus Wert und Kontext, kann ein Stringliteral, das nur eine Zahl enthält,
in einer mathematischen Operation verwendet werden:
"2" * 2;
> 4
Wenn diese Zeichenfolge jedoch nicht als Zahlenwert geparst werden kann, wird die mathematische Berechnung zu einer Nicht-Zahl führt:
"two" * 2;
> NaN
NaN
wird zurückgegeben, wenn ein ungültiger Wert als Zahl dargestellt wird.
in einer mathematischen Operation lösen. Beispiele:
- Fehlgeschlagene Zahlenkonvertierungen (z. B.
parseInt( undefined )
) - Arithmetische Operationen, bei denen das Ergebnis keine reelle Zahl ist (z. B.
0 / 0
,Math.sqrt( -10 )
) - Eine arithmetische Operation mit einem unbestimmten Ergebnis (
0 * Infinity
) - Eine arithmetische Operation, die entweder eine explizite
NaN
(NaN + 2
) oder einNaN
-Ergebnis (2 * "string" / 2
)
Wissen testen
Was passiert, wenn false
an Number()
übergeben wird?
Was ist das Ergebnis der folgenden mathematischen Operation?
"Six" * 3