Numbers

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 ein NaN-Ergebnis (2 * "string" / 2)

Wissen testen

Was passiert, wenn false an Number() übergeben wird?

NaN
Falsch
1
0

Was ist das Ergebnis der folgenden mathematischen Operation?

"Six" * 3

Richtig
2
18
NaN
0