JS-Tutorial

JS-HAUS JS-Einführung JS Wohin JS-Ausgabe JS-Anweisungen JS-Syntax JS-Kommentare JS-Variablen JS Let JS Konst JS-Operatoren JS-Arithmetik JS-Aufgabe JS-Datentypen JS-Funktionen JS-Objekte JS-Ereignisse JS-Strings JS-String-Methoden Suche nach JS-Strings JS-String-Vorlagen JS-Nummern JS-Zahlenmethoden JS-Arrays JS-Array-Methoden JS-Array-Sortierung JS-Array-Iteration JS-Array-Konstante JS-Daten JS-Datumsformate JS Date Get-Methoden JS-Datumssatzmethoden JS Math JS Zufällig JS Boolesche Werte JS-Vergleiche JS-Bedingungen JS-Schalter JS-Schleife für JS-Schleife für In JS-Schleife für Of JS-Schleife While JS Pause JS-Iterables JS-Sets JS-Karten JS Typeof JS-Typkonvertierung JS Bitweise JS RegExp JS-Fehler JS-Bereich JS Heben Strenger JS-Modus JS dieses Schlüsselwort JS-Pfeilfunktion JS-Klassen JS JSON JS-Debugging JS-Styleguide JS Best Practices JS-Fehler JS-Leistung JS Reservierte Wörter

JS-Versionen

JS-Versionen JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS-Geschichte

JS-Objekte

Objektdefinitionen Objekteigenschaften Objektmethoden Objektanzeige Objektzugriffsmethoden Objektkonstruktoren Objekt-Prototypen Objekt-Iterables Objektsätze Objektkarten Objektreferenz

JS-Funktionen

Funktionsdefinitionen Funktionsparameter Funktionsaufruf Funktionsaufruf Funktion anwenden Funktionsschließungen

JS-Klassen

Klasse Einführung Klassenvererbung Klasse statisch

JS asynchron

JS-Rückrufe JS asynchron JS verspricht JS Async/Warten

JS-HTML-DOM

DOM-Einführung DOM-Methoden DOM-Dokument DOM-Elemente DOM-HTML DOM-Formulare DOM-CSS DOM-Animationen DOM-Ereignisse DOM-Ereignis-Listener DOM-Navigation DOM-Knoten DOM-Sammlungen DOM-Knotenlisten

Stückliste des JS-Browsers

JS-Fenster JS-Bildschirm JS-Standort JS-Geschichte JS-Navigator JS-Popup-Warnung JS-Timing JS-Cookies

JS-Web-APIs

Web-API-Einführung Web Forms-API Webprotokoll-API Webspeicher-API Web Worker-API Web-Fetch-API Web-Geolocation-API

JS AJAX

AJAX-Einführung AJAX-XMLHttp AJAX-Anfrage AJAX-Antwort AJAX-XML-Datei AJAX-PHP AJAX ASP AJAX-Datenbank AJAX-Anwendungen AJAX-Beispiele

JS JSON

JSON-Einführung JSON-Syntax JSON vs. XML JSON-Datentypen JSON-Parsing JSON-Stringify JSON-Objekte JSON-Arrays JSON-Server JSON-PHP JSON-HTML JSON JSONP

JS vs. jQuery

jQuery-Selektoren jQuery-HTML jQuery-CSS jQuery-DOM

JS-Grafik

JS-Grafik JS-Leinwand JS Plotly JS Chart.js JS Google-Diagramm JS D3.js

JS-Beispiele

JS-Beispiele JS-HTML-DOM JS-HTML-Eingabe JS-HTML-Objekte JS-HTML-Ereignisse JS-Browser JS-Editor JS-Übungen JS-Quiz JS-Zertifikat

JS-Referenzen

JavaScript-Objekte HTML-DOM-Objekte


JavaScript -Zahlen


JavaScript hat nur einen Zahlentyp. Zahlen können mit oder ohne Dezimalstellen geschrieben werden.


Beispiel

let x = 3.14;    // A number with decimals
let y = 3;       // A number without decimals

Extra große oder extra kleine Zahlen können mit wissenschaftlicher (Exponenten-) Notation geschrieben werden:

Beispiel

let x = 123e5;    // 12300000
let y = 123e-5;   // 0.00123


JavaScript-Zahlen sind immer 64-Bit-Gleitkommazahlen

Im Gegensatz zu vielen anderen Programmiersprachen definiert JavaScript keine verschiedenen Arten von Zahlen, wie Ganzzahlen, kurze, lange, Fließkommazahlen usw.

JavaScript-Zahlen werden gemäß dem internationalen Standard IEEE 754 immer als Gleitkommazahlen mit doppelter Genauigkeit gespeichert.

Dieses Format speichert Zahlen in 64 Bit, wobei die Zahl (der Bruch) in den Bits 0 bis 51, der Exponent in den Bits 52 bis 62 und das Vorzeichen in Bit 63 gespeichert wird:

Wert (auch bekannt als Bruch/Mantisse) Exponent Unterschrift
52 Bit (0 - 51)  11 Bit (52 - 62) 1 Bit (63)

Ganzzahlige Genauigkeit

Ganze Zahlen (Zahlen ohne Punkt oder Exponentenschreibweise) sind auf bis zu 15 Stellen genau.

Beispiel

let x = 999999999999999;   // x will be 999999999999999
let y = 9999999999999999;  // y will be 10000000000000000

Die maximale Anzahl von Dezimalstellen beträgt 17.

Schwebende Präzision

Fließkomma-Arithmetik ist nicht immer 100% genau:

let x = 0.2 + 0.1;

Um das obige Problem zu lösen, hilft es zu multiplizieren und zu dividieren:

let x = (0.2 * 10 + 0.1 * 10) / 10;


Hinzufügen von Zahlen und Zeichenfolgen

WARNUNG !!

JavaScript verwendet den +-Operator sowohl für die Addition als auch für die Verkettung.

Zahlen werden hinzugefügt. Zeichenfolgen werden verkettet.

Wenn Sie zwei Zahlen addieren, ist das Ergebnis eine Zahl:

Beispiel

let x = 10;
let y = 20;
let z = x + y;

Wenn Sie zwei Zeichenfolgen hinzufügen, ist das Ergebnis eine Zeichenfolgenverkettung:

Beispiel

let x = "10";
let y = "20";
let z = x + y;

Wenn Sie eine Zahl und eine Zeichenfolge hinzufügen, ist das Ergebnis eine Zeichenfolgenverkettung:

Beispiel

let x = 10;
let y = "20";
let z = x + y;

Wenn Sie eine Zeichenfolge und eine Zahl hinzufügen, ist das Ergebnis eine Zeichenfolgenverkettung:

Beispiel

let x = "10";
let y = 20;
let z = x + y;

Ein häufiger Fehler ist zu erwarten, dass dieses Ergebnis 30 ist:

Beispiel

let x = 10;
let y = 20;
let z = "The result is: " + x + y;

Ein häufiger Fehler ist zu erwarten, dass dieses Ergebnis 102030 ist:

Beispiel

let x = 10;
let y = 20;
let z = "30";
let result = x + y + z;

Der JavaScript-Interpreter arbeitet von links nach rechts.

Zuerst wird 10 + 20 addiert, weil x und y beides Zahlen sind.

Dann wird 30 + "30" verkettet, weil z ein String ist.


Numerische Zeichenfolgen

JavaScript-Strings können numerischen Inhalt haben:

let x = 100;         // x is a number

let y = "100";       // y is a string

JavaScript versucht bei allen numerischen Operationen, Strings in Zahlen umzuwandeln:

Das wird funktionieren:

let x = "100";
let y = "10";
let z = x / y;

Das wird auch funktionieren:

let x = "100";
let y = "10";
let z = x * y;

Und das wird funktionieren:

let x = "100";
let y = "10";
let z = x - y;

Aber das wird nicht funktionieren:

let x = "100";
let y = "10";
let z = x + y;

Im letzten Beispiel verwendet JavaScript den +-Operator, um die Strings zu verketten.


NaN - Keine Zahl

NaNist ein für JavaScript reserviertes Wort, das angibt, dass eine Zahl keine gültige Zahl ist.

Der Versuch, mit einer nicht numerischen Zeichenfolge zu rechnen, führt zu NaN(Not a Number):

Beispiel

let x = 100 / "Apple";

Wenn die Zeichenfolge jedoch einen numerischen Wert enthält, ist das Ergebnis eine Zahl:

Beispiel

let x = 100 / "10";

Sie können die globale JavaScript-Funktion verwenden isNaN() , um herauszufinden, ob ein Wert keine Zahl ist:

Beispiel

let x = 100 / "Apple";
isNaN(x);

Achten Sie auf NaN. Wenn Sie NaNeine mathematische Operation verwenden, lautet das Ergebnis ebenfalls NaN:

Beispiel

let x = NaN;
let y = 5;
let z = x + y;

Oder das Ergebnis könnte eine Verkettung wie NaN5 sein:

Beispiel

let x = NaN;
let y = "5";
let z = x + y;

NaNist eine Zahl: typeof NaNgibt zurück number:

Beispiel

typeof NaN;

Unendlichkeit

Infinity(oder -Infinity) ist der Wert, den JavaScript zurückgibt, wenn Sie eine Zahl außerhalb der größtmöglichen Zahl berechnen.

Beispiel

let myNumber = 2;
// Execute until Infinity
while (myNumber != Infinity) {
  myNumber = myNumber * myNumber;
}

Division durch 0 (Null) erzeugt auch Infinity:

Beispiel

let x =  2 / 0;
let y = -2 / 0;

Infinityist eine Zahl: typeof Infinitygibt zurück number.

Beispiel

typeof Infinity;

Hexadezimal

JavaScript interpretiert numerische Konstanten als hexadezimal, wenn ihnen 0x vorangestellt ist.

Beispiel

let x = 0xFF;

Schreiben Sie niemals eine Zahl mit führender Null (wie 07).
Einige JavaScript-Versionen interpretieren Zahlen als oktal, wenn sie mit führender Null geschrieben werden.

Standardmäßig zeigt JavaScript Zahlen als Dezimalstellen zur Basis 10 an .

Aber Sie können die Methode verwenden, um Zahlen von der Basis 2 bis zur Basis 36toString() auszugeben .

Hexadezimal ist Basis 16 . Dezimal ist Basis 10 . Oktal ist die Basis 8 . Binär ist Basis 2 .

Beispiel

let myNumber = 32;
myNumber.toString(10);
myNumber.toString(32);
myNumber.toString(16);
myNumber.toString(8);
myNumber.toString(2);

JavaScript-Zahlen als Objekte

Normalerweise sind JavaScript-Zahlen primitive Werte, die aus Literalen erstellt wurden:

let x = 123;

Zahlen können aber auch mit dem Schlüsselwort als Objekte definiert werden new:

let y = new Number(123);

Beispiel

let x = 123;
let y = new Number(123);

Erstellen Sie keine Number-Objekte.

Das newSchlüsselwort verkompliziert den Code und verlangsamt die Ausführungsgeschwindigkeit.

Zahlenobjekte können zu unerwarteten Ergebnissen führen:

Bei Verwendung des ==Operators sind x und y gleich :

let x = 500;
let y = new Number(500);

Bei Verwendung des ===Operators sind x und y ungleich .

let x = 500;
let y = new Number(500);

Beachten Sie den Unterschied zwischen (x==y)und (x===y).

(x == y)richtig oder falsch?

let x = new Number(500);
let y = new Number(500);

(x === y)richtig oder falsch?

let x = new Number(500);
let y = new Number(500);

Comparing two JavaScript objects always returns false.

Complete JavaScript Number Reference

For a complete Number reference, visit our:

Complete JavaScript Number Reference.

The reference contains descriptions and examples of all Number properties and methods.