Solche grundlegenden Dinge sollten nicht mehr aufgezeichnet werden, sondern zuerst die Vergangenheit überprüfen und die neuen lernen. Beginnen wir mit dem Datentyp.
JS Sechs Hauptdatentypen: Anzahl, String, Objekt, Boolean, Null, undefiniert
String: Erklärt durch einzelne oder doppelte Zitate wie "String"
Nummer: Welche Ganzzahlen, schwimmende Punktzahlen werden alle als Zahlen bezeichnet, wissen Sie ~
Boolean: Das ist wahr und falsch
Undefiniert: Undefiniert, dh erstellen Sie eine Variable, weisen jedoch keinen Wert zu ~ ~
NULL: Deshalb heißt es Sijiu. Null bedeutet nichts, nichts bedeutet nichts
Objekt: Ich bin schwer zu erklären. Es ist der andere Typ als die oben genannten fünf
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Typeof Datentyp -Beurteilung
TypeOF kann die meisten Datentyp -Urteile lösen. Es ist eine Ein-Ary-Operation. Vor einem Betriebswert ist der Rückgabewert eine Zeichenfolge. Diese Zeichenfolge gibt den Typ der Betriebsnummer an. Daher ist if (typeof (Ihr Wert) == "String") {}
Hier sind die Ergebnisse, die von verschiedenen Datentypen zurückgegeben werden:
var a = "String"; console.log (a); // Stringvar a = 1; console.log (a); // numnvar a = false; console.log (a); // booleanvar a; console.log (typeof a); // ungekündigtvar a = null; console.log (typeof a); // ObjectVar a = Dokument; console.log (typeof a); // ObjectVar a = []; console.log (a); // ObjectVar a = function () {}; console.log (typeof a) // Funktion Zusätzlich zum Beurang von Datentypen können Sie auch Funktionstypen beurteilenDas ist offensichtlich. Mit Ausnahme der ersten vier Typen Null, Objekt und Array geben alle Objekttypen zurück;
Für Funktionstypen wird die Funktion zurückgegeben, wie z. B. Typeof (Datum), Typof (Eval) usw.
Dann können wir hier ein weiteres Problem erweitern, das sehr beliebt ist und die Lösung bereits häufig ist. Wie kann ich bestimmen, ob die Daten ein Array -Typ sind?
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
JS -Methode zur Bestimmung des Array -Typs
Methode 1 Instanz
Instanz bedeutet daher der Name, Instanz, Beispiel. Daher wird Instanz von verwendet, um festzustellen, ob eine Variable eine Instanz eines Objekts ist. Es handelt sich um eine dreidimensionale Betriebsformel
A Instanz von B? Alert ("true"): alert ("false") // Beachten Sie, dass der B -Wert der Datentyp ist, den Sie beurteilen möchten, und keine Zeichenfolge, wie z.
Nehmen Sie eine Kastanie:
var a = []; console.log (ein Instanz von Array) // Return true
Methode 2 Konstruktor
Definition in W3C Definition: Die Konstruktoreigenschaft gibt einen Verweis auf die Array -Funktion zurück, die dieses Objekt erstellt hat
Es gibt den dem Objekt entsprechenden Konstruktor zurück. In der Definition stimmt es nicht sehr überein mit dem Instanz, aber die Effekte sind gleich
Zum Beispiel: (ein Instanz von Array) // a Ist es eine Instanz von Array? wahr oder falsch
(A.Constructor == Array) // Entspricht der Konstruktor der Instanz A dem Array? wahr oder falsch
Nehmen Sie eine Kastanie:
Funktionsangestellter (Name, Job, geboren) {this.name = name; this.job = Job; this.born = born;} var bill = neuer Mitarbeiter ("Bill Gates", "Ingenieur", 1985); Konsole.log (Bill.Constructor); // Ausgabefunktion Mitarbeiter (Name, JobTitle, geboren) {this.name = name; this.joBtitle = Job; this.born = geboren;}Dann lautet die Methode, um verschiedene Typen zu beurteilen:
console.log ([]. constructor == array); console.log ({}. constructor == Objekt); console.log ("String" .Constructor == String); console.log ((123) .Constructor == Nummer); console.log (true.constructor == boolean);------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Eine strengere und allgemeinere Methode:
Funktion isArray (Objekt) {return object && typeof Object === 'Objekt' && array == Object.Constructor;}! ! Beachten:
Mit Instanz und Konstruktor muss das beurteilte Array auf der aktuellen Seite deklariert werden! Auf eine Seite (übergeordnete Seite) enthält beispielsweise ein Framework, eine Seite (Unterseite) wird im Framework verwiesen, ein Array wird auf der untergeordneten Seite deklariert und einer Variablen der übergeordneten Seite zugewiesen. Zu diesem Zeitpunkt wird die Variable beurteilt, Array == Object.Constructor; wird falsch zurückgeben;
Grund:
1. Array ist eine Referenzdaten. Während des Übertragungsprozesses handelt es sich nur um eine Übertragung der Referenzadresse.
2. Die von dem Array Native Objekt jeder Seite verwiesene Adresse ist unterschiedlich. Der entsprechende Konstruktor des auf der untergeordneten Seite deklarierten Arrays ist das Array -Objekt der untergeordneten Seite. Für das Urteil auf der übergeordneten Seite ist das verwendete Array nicht gleich dem Array der untergeordneten Seite. Denken Sie daran, sonst wird es schwierig sein, das Problem zu verfolgen!
Methode 3: Merkmalsbeurteilungsmethode
Alle oben genannten Methoden haben bestimmte Mängel, aber wir müssen glauben, dass die Weisheit der Massen allmächtig ist. Wir können seinen Typ anhand einiger Merkmale des Arrays beurteilen.
Funktion isArray (Objekt) {return object && typeof Object === 'Objekt' && typeof Object.length === 'Nummer' && typeof Object.splice === 'Funktion' && // Bestimmen Sie nur, ob die Länge -Eigenschaft für Arrays aufgezählt werden kann.Länge und Spleiß sind nicht unbedingt ein Array, da der wichtigste Urteilsfaktor darin besteht, Objekte Attribute hinzuzufügen, aber nicht die Längenattribute aufzählen.
PS: Hier werden die PropertySesienumerable -Methode populär:
Objekt. PropertyISenumerable (Proname)
Bestimmen Sie, ob das angegebene Attribut aufgeführt werden kann
HINWEIS: Wenn der Proname in einem Objekt existiert und mit einem für… in Schleife ausführlich aufgezählt werden kann, gibt die PropertySenumerable -Eigenschaft true zurück. Wenn das Objekt nicht über die angegebene Eigenschaft verfügt oder die angegebene Eigenschaft nicht aufgezählt ist, gibt die Eigenschaft iSenumerable Eigenschaft FALSE zurück.
Die PropertyISenumerable -Eigenschaft berücksichtigt keine Objekte in der Prototypkette.
Beispiel:
var a = new Array ("Apple", "Banane", "Cactus"); document.write (A.Propertyisenumerable (1));Methode 4 die einfachste Methode
Funktion isArray (o) {return object.prototype.toString.call (o) === '[Objektarray]';}Das obige ist der gesamte Inhalt dieses Artikels. Weitere Informationen zu JavaScript finden Sie unter: "JavaScript Reference Tutorial" und "JavaScript Code Style Guide". Ich hoffe auch, dass jeder wulin.com mehr unterstützt.