1. Klassifizierung
Grundlegende Datentypen: undefiniert, Null, String, Boolesche, Nummer
Komplexer Datentyp: Objekt
Das Attribut des Objekts ist in der Form eines ungeordneten Namens und Wertes (Name: Wert) definiert.
2. Detaillierte Erklärung
1. undefiniert : Der undefinierte Typ hat nur einen Wert: undefiniert. Wenn eine Variable unter Verwendung von VAR deklariert, jedoch nicht initialisiert wird, ist der Wert dieser Variablen undefiniert.
Variablen, die undefinierte Werte enthalten, unterscheiden sich von nicht definierten Variablen. Das folgende Beispiel kann veranschaulichen:
Die Codekopie lautet wie folgt:
var Demo1; // deklariert, aber nicht initialisiert
Alarm (Demo1); // undefiniert
Alert (Demo2); // einen Fehler melden, Demo2 ist nicht definiert
2. NULL : Es gibt nur einen Wert für den Null -Typ: NULL. Aus logischer Sicht stellt der Nullwert einen leeren Objektzeiger dar.
Wenn die definierte Variable in Zukunft zum Speichern des Objekts verwendet werden kann, ist es am besten, die Variable in Null anstelle anderer Werte zu initialisieren. Auf diese Weise können Sie nur durch direktes Erkennen des Nullwerts wissen, ob die entsprechende Variable beispielsweise die Referenz eines Objekts gespeichert hat:
Die Codekopie lautet wie folgt:
if (Auto! = null)
{
// Führen Sie einige Operationen auf dem Autoobjekt aus
}
Tatsächlich werden undefinierte Werte aus den Nullwerten abgeleitet, sodass ECMA-262 angibt, dass ihre Gleichstellungstests die true zurückgeben sollten.
alarm (undefiniert == null); //WAHR
Obwohl Null und Undefined eine solche Beziehung haben, sind ihre Verwendungen völlig unterschiedlich. In jedem Fall ist es nicht erforderlich, den Wert einer Variablen explizit auf undefinierte Variable festzulegen, aber dieselbe Regel gilt nicht für NULL. Mit anderen Worten, solange die Variable, die das Objekt speichern soll, das Objekt noch nicht gespeichert hat, sollte die Variable explizit erlaubt werden, den Nullwert zu speichern. Dies spiegelt nicht nur die Konvention von Null als Zeiger für Null -Objekte wider, sondern hilft auch, zwischen Null und Undefined weiter zu unterscheiden.
3. Boolean : Boolean Typ hat zwei Werte: Richtig und falsch. Diese beiden Werte sind nicht die gleichen wie numerische Werte, so dass True nicht unbedingt gleich 1 ist, und falsch ist nicht unbedingt gleich 0.
Es ist zu beachten, dass die wörtlichen Werte des booleschen Typs fallempfindlich sind, dh weder wahr noch falsch (und andere Formen der Fallmischung) boolesche Werte sind, aber nur Identifikatoren.
Obwohl es nur zwei wörtliche Werte für Boolesche Typen gibt, haben alle Arten von Werten in JavaScript Werte, die denen dieser beiden booleschen Werte entsprechen. Um einen Wert in den entsprechenden Booleschen Wert umzuwandeln, können Sie die Typ Conversion -Funktion boolean () aufrufen, z. B.:
Die Codekopie lautet wie folgt:
var message = 'Hallo Welt';
var messageasboolean = boolean (Nachricht);
In diesem Beispiel wird die String -Nachricht in einen booleschen Wert konvertiert, der in der Messageasboolan -Variablen gespeichert ist. Die Funktion boolean () kann auf Werte eines beliebigen Datentyps aufgerufen werden, und ein Boolescher Wert wird immer zurückgegeben. Ob der zurückgegebene Wert wahr oder falsch ist, hängt vom Datentyp ab, um den Wert und seinen tatsächlichen Wert umzuwandeln. Die folgende Tabelle zeigt die Konvertierungsregeln für verschiedene Datentypen und deren Objekte.
Diese Conversion -Regeln sind sehr wichtig, um die automatische Ausführung entsprechender boolescher Transformationen in den Flusskontrollanweisungen (z. B. wenn Aussagen) beispielsweise zu verstehen:
Die Codekopie lautet wie folgt:
var message = 'Hallo Welt';
if (meldung) // äquivalent zu if (boolean (message) == true)
{
alarm ("Wert ist wahr"); // Wert ist wahr
}
Aufgrund dieser automatischen booleschen Transformation ist es entscheidend, genau zu wissen, welche Variablen in der Durchflusssteuerungsanweisung verwendet werden.
4. Nummer: Ganzzahl und schwimmender Punkt
4.1 Ganzzahl: Bei der Durchführung von Berechnungen werden alle Oktal- und Hexadezimalzahlen in Dezimalheit umgewandelt
4.2 Schwimmpunkt: Die höchste Genauigkeit eines schwebenden Punktwerts beträgt 17 Bit, daher ist seine Genauigkeit bei der Berechnung der Arithmetik weit geringer als die einer Ganzzahl. Zum Beispiel: Das Ergebnis von 0,1+0,2 beträgt nicht 0,3, sondern 0,3000000000000000000004. Zum Beispiel:
Die Codekopie lautet wie folgt:
A = 0,2;
B = 0,1;
if (a+b == 0.3) {
alarm ("Hallo");
}
anders{
alarm ("hi");
}
Das Ergebnis wird "Hallo" angezeigt. Testen Sie also keinen bestimmten schwimmenden Punktwert.
4.3 NAN: Nicht numerisch, nicht eine Zahl, dieser Wert wird verwendet, um einen Fall darzustellen, in dem ein Operand, der ursprünglich einen Wert zurücksenden wollte, keinen Wert zurückgab (dies wird keinen Fehler auslösen).
Nan selbst hat zwei außergewöhnliche Eigenschaften. Erstens wird jede Operation mit NAN (z. B. NAN/10) NAN zurückgeben, ein Merkmal, das Probleme bei mehrstufigen Berechnungen verursachen kann. Zweitens ist Nan keinem Wert, einschließlich Nan selbst. Zum Beispiel:
Die Codekopie lautet wie folgt:
alarm (nan == nan); //FALSCH
In JavaScript gibt es eine Isnan () -Funktion. Diese Funktion akzeptiert einen Parameter, der von jedem Typ sein kann, und die Funktion hilft uns, festzustellen, ob dieser Parameter "kein numerischer Wert" ist. Nach Erhalt eines Wertes versucht ISNAN (), diesen Wert in einen numerischen Wert umzuwandeln. Einige Werte, die keine numerischen Werte sind, werden direkt in numerische Werte konvertiert, z. B. die Zeichenfolge "10" oder die booleschen Werte. Jeder Wert, der nicht in einen numerischen Wert konvertiert werden kann, führt dazu, dass diese Funktion die true zurückgibt. Zum Beispiel:
Die Codekopie lautet wie folgt:
Alarm (isnan (nan)); //WAHR
Alarm (isnan (10)); // falsch (10 ist ein numerischer Wert)
alarm (isnan ("10")); // falsch (kann in den numerischen Wert 10 konvertiert werden 10)
alarm (isnan ("blau"); // true (kann nicht in den numerischen Wert umgewandelt werden)
alarm (isnan ("bule123")); // ture (kann nicht in den numerischen Wert umgewandelt werden)
Alarm (isnan (wahr)); // falsch (kann in einen Wert von 1 konvertiert werden)
Es gibt 3 Funktionen, die nicht numerische Werte in numerische Werte umwandeln können: number (), parseInt () und parsefloat (). Die erste Funktion, nämlich die Transformationsfunktionsnummer (), kann für jeden Datentyp verwendet werden, während die beiden anderen Funktionen speziell zum Umwandeln von Zeichenfolgen in numerische Werte verwendet werden. Diese 3 Funktionen geben unterschiedliche Ergebnisse für dieselbe Eingabe zurück.
Die Konvertierungsregeln der Funktion nummer () sind wie folgt:
● Wenn es sich um einen booleschen Wert handelt, wird wahr und falsch durch 1 bzw. 0 ersetzt.
● Wenn es sich um einen numerischen Wert handelt, handelt es sich nur um einen einfachen Pass und eine einfache Rückgabe.
● Wenn es sich um einen Nullwert handelt, senden Sie 0 zurück
● Wenn undefiniert, geben Sie die NAN zurück
● Wenn es sich um eine Zeichenfolge handelt, befolgen Sie die folgenden Regeln:
○ Wenn die Zeichenfolge nur Zahlen enthält, konvertieren Sie sie in einen Dezimalwert, dh "1" wird 1, "123" wird 123 und "011" wird 11 (die führende 0 wird ignoriert)
○ Wenn die Zeichenfolge ein gültiges Schwimmpunktformat enthält, wie "1.1", wird sie in die entsprechende schwimmende Punktzahl umgewandelt (auch die Führung von 0 wird ignoriert)
○ Wenn die Zeichenfolge ein gültiges hexadezimales Format wie "0xf" enthält, wird es in einen Dezimalbewerber derselben Größe umgewandelt
○ Wenn die Zeichenfolge leer ist, konvertieren Sie sie in 0
○ Wenn die Zeichenfolge andere Zeichen als das obige Format enthält, konvertieren Sie sie in NAN
● Wenn es sich um ein Objekt handelt, rufen Sie die ValueOf () -Methode des Objekts auf und konvertieren Sie dann den zurückgegebenen Wert gemäß den vorherigen Regeln. Wenn das Ergebnis der Konvertierung NAN ist, wird die Methode toString () des Objekts aufgerufen, und dann wird der zurückgegebene Zeichenfolgenwert nach den vorherigen Regeln konvertiert.
Die Codekopie lautet wie folgt:
var num1 = number ("Hallo Welt"); // nan
var num2 = nummer (""); // 0
var num3 = number ("000011"); // 11
var num4 = nummer (true); // 1
Da die Funktion number () bei der Konvertierung von Zeichenfolgen komplizierter und unangemessener ist, wird die Funktion ParseInt () bei der Verarbeitung von Ganzzahlen häufiger verwendet, und die Funktion parsefloat () wird häufig bei der Verarbeitung der schwimmenden Punktzahlen verwendet. Weitere Informationen finden Sie unter: http://www.cnblogs.com/yxfield/p/4167954.html
5. String
Der String-Typ wird verwendet, um eine Folge von Zeichen darzustellen, die aus Null oder mehr 16-Bit-Unicode-Zeichen bestehen, d. H. Eine Zeichenfolge. Eine Zeichenfolge kann durch einzelne Zitate (') oder Doppelzitate (") dargestellt werden.
Die Codekopie lautet wie folgt:
var str1 = "Hallo";
var str2 = 'Hallo';
Die Länge jeder Schnur kann durch Zugriff auf die Länge Eigenschaft erhalten werden.
Die Codekopie lautet wie folgt:
ALERT (STR1.Length); // Ausgabe 5
Es gibt zwei Möglichkeiten, einen Wert in eine Zeichenfolge umzuwandeln. Die erste besteht darin, die Methode toString () zu verwenden, die fast jeder Wert hat.
Die Codekopie lautet wie folgt:
var Alter = 11;
var ageasstring = Alter.toString (); // String "11"
var found = true;
var foffenstring = found.toString (); // String "True"
Numerische, Boolesche, Objekt- und Stringwerte haben alle Methoden toString (). Null und undefinierte Werte haben diese Methode jedoch nicht.
In den meisten Fällen muss die Aufrufen der Methode toString () keine Parameter übergeben. Wenn Sie jedoch die Methode toString () des numerischen Werts aufrufen, können Sie einen Parameter übergeben: die Kardinalität des Ausgabwerts.
Die Codekopie lautet wie folgt:
var num = 10;
alert (num.tostring ()); // "10"
Alert (num.tostring (2)); // "1010"
Alert (num.tostring (8)); // "12"
alert (num.tostring (10)); // "10"
Alert (num.tostring (16)); //"A"
Aus diesem Beispiel können wir sehen, dass die Methode von ToString () durch Angabe der Kardinalität den Ausgangswert ändert. Der Wert 10 kann bei Ausgabe gemäß der unterschiedlichen Kardinalität in verschiedene numerische Formate umgewandelt werden.
Ohne zu wissen, ob der zu konvertierende Wert null oder undefiniert ist, können Sie auch die Transformationsfunktionsstring () verwenden, die jede Art von Wert in eine Zeichenfolge umwandeln kann. Die Funktion String () folgt den folgenden Konvertierungsregeln:
● Wenn der Wert eine toString () -Methode hat, wird die Methode aufgerufen (keine Parameter) und das entsprechende Ergebnis wird zurückgegeben.
● Wenn der Wert null ist, geben Sie "null" zurück
● Wenn der Wert undefiniert ist, geben Sie "undefiniert" zurück
6. Objekt
Objekte sind tatsächlich eine Sammlung von Daten und Funktionen. Objekte können erstellt werden, indem der neue Bediener ausgeführt wird, gefolgt vom Namen des zu erstellenden Objekttyps. Durch das Erstellen einer Instanz des Typ -Objekts und das Hinzufügen von Eigenschaften und (oder) Methoden können Sie ein benutzerdefiniertes Objekt erstellen.
var o = neues Objekt ();
Alle Eigenschaften und Methoden des Objekttyps existieren auch in spezifischeren Objekten. Jede Instanz des Objekts hat die folgenden Eigenschaften und Methoden:
● Konstruktor (Konstruktor) - Speichert die Funktion, die zum Erstellen des aktuellen Objekts verwendet wird
● HasownProperty (PropertyName) - Wird verwendet, um zu überprüfen, ob die angegebene Eigenschaft in der aktuellen Objektinstanz vorliegt (nicht im Prototyp der Instanz). Dabei muss der Eigenschaftsname (Eigenschaftsname) als Parameter in einem Stringformular angegeben werden (z. B. O.hasownProperty ("Name"))
● isPrototypeof (Objekt) - Wird verwendet, um zu überprüfen, ob das eingehende Objekt ein Prototyp eines anderen Objekts ist
● PropertyISenumerable (PropertyName) - Wird verwendet, um zu überprüfen, ob eine bestimmte Eigenschaft mithilfe der For -In -Anweisung aufgezählt werden kann.
● toString () - Gibt die String -Darstellung des Objekts zurück
● valueOf () - Gibt die Zeichenfolge, die Numerik- oder Boolesche Darstellung des Objekts zurück. Normalerweise ist der Rückgabewert der Methode toString () gleich.
3. Kleiner Test
Die Codekopie lautet wie folgt:
Typof (NAN)
Typof (unendlich)
typeof (null)
Typof (undefiniert)
Viele Interviews werden die oben genannten Fragen stellen ~~
Das obige ist eine Einführung in diese 6 JavaScript -Datentypen. Hast du es klar verstanden? Ich hoffe, Sie können sich nach dem Lesen dieses Artikels verbessern.