Es gibt sechs gängige Datentypen in js: String-Typ, Null-Typ, Zahlentyp, Boolescher Typ und Objekttyp.
1. Hinweise zur Art
Wenn es um Datentypen geht, ist es unvermeidlich, den Operator typeof zu erwähnen. Zu beachten:
1. typeof ist ein Operator, keine Methode. Obwohl wir oft typeof() verwenden, um den Datentyp eines Objekts zu erhalten.
2. Typeof für Null ist Objekt (dies liegt daran, dass Null eine leere Objektreferenz ist) und Typeof für Funktion ist Funktion.
Kopieren Sie den Codecode wie folgt:
Alert(typeof null); //Objekt zurückgeben
Funktionsdemo(){
alarm('demo');
}
Alert(typeof demo); //Rückgabefunktion
2. Legen Sie Anfangswerte für Objektvariablen verschiedener Datentypen fest
Beachten Sie, dass Sie var demo={} nicht verwenden sollten, wenn die Objektvariable vom Typ Object zunächst nicht weiß, was sie zuweisen soll.
Kopieren Sie den Codecode wie folgt:
var d2=null;
d2={'key':"shit"};
var d3='';//String-Standard
var d4=0; //Der Anfangswert des Zahlentyps wird auf 0 gesetzt
var d5=null; //Anfänglichen Standardwert für Objekttyp festlegen
3. Der Unterschied und die zu beachtenden Punkte zwischen undefiniert und null
1. Wenn Sie zum Vergleichen „==“ verwenden, sind sie gleich, da sie Werte vergleichen.
2. Es gibt zwei Möglichkeiten, sie zu unterscheiden (ihr Kern besteht darin, ihre Datentypen zu vergleichen).
1) Verwenden Sie typeof, um sie zu unterscheiden
2) Verwenden Sie kongruent „===“: Der Vergleich erfolgt zwischen dem Wert und dem Datentyp, und true wird nur zurückgegeben, wenn sie alle gleich sind.
Kopieren Sie den Codecode wie folgt:
Alert(undefiniert == null); //true
Alert(typeof undefiniert == typeof null); //false
Alert(undefiniert === null); //true
4. Hinweise zum Booleschen Wert
1. Der Vergleich zwischen wahr und 1 ist derselbe, und der Vergleich zwischen falsch und 0 ist derselbe (es ist ein „==“-Vergleich), da die Datentypkonvertierung intern implementiert wird und wahr in 1 und falsch konvertiert wird in 0. Es gibt viele Daten in js. Die automatische Konvertierung von Typen ist etwas, auf das jeder achten muss. Viele weitere werden später erwähnt. Aber die Verwendung von „===“ ist nicht gleich, da ihre Datentypen nicht gleich sind.
2. Zeigen Sie die Konvertierung in Boolean an. Verwenden Sie die Methode Boolean(), um die Konvertierung in „true“ und wann in „false“ zu beachten.
1) String-Typ: Solange es sich nicht um einen leeren String handelt, wird er in true konvertiert
2) Zahlentyp: Solange er nicht 0 ist, wird auch eine negative Zahl in wahr umgewandelt
3) Der Objekttyp wird in „true“ konvertiert, solange er kein Nulltyp ist
4) Undefinierter Typ wird in „false“ konvertiert
Ich werde keine Demonstration geben, Sie können es selbst ausprobieren.
3. (***) Die boolesche Funktion wird innerhalb () der if()-Anweisung aufgerufen.
5. Zu beachtende Punkte zum Nummerntyp
1. Der Float-Typ kann keine präzisen Operationen ausführen.
Kopieren Sie den Codecode wie folgt:
alarm(0.1+0.2);//Return 0.3000000000000000004
2. Unterstützen Sie wissenschaftliche Notationsoperationen
3. NaN (keine Zahl)
1) var d=0/0; Hinweis: In js wird kein Fehler gemeldet, aber NaN wird zurückgegeben.
2) Kann über Number.NaN erhalten werden
3) Jede Operation zwischen NaN und einem beliebigen Objekt gibt NaN zurück.
4) isNaN() bestimmt, ob es NaN ist
Kopieren Sie den Codecode wie folgt:
alarm(isNaN(NaN));//true
alarm(isNaN(12));//false
alarm(isNaN('123'));//false: Weil Zahlen vom Typ String automatisch in Zahlen umgewandelt werden können
alarm(isNaN('lew'));//true
alarm(isNaN(false));//(*)false: Da der Bool-Wert in eine Zahl umgewandelt werden kann, wird true zu 1, false zu 0
5) Internes Ausführungsprinzip von isNaN(): Das Gleiche gilt für Objekte. Implementierungsprinzip: Der Premierminister ruft die valueOf()-Methode des Objekts auf. Wenn es in eine Zahl konvertiert werden kann, wird es direkt beurteilt. Wenn es nicht in eine Zahl konvertiert werden kann, ruft es die toString()-Methode erneut auf. und testen Sie dann den Rückgabewert.
valueOf() ruft intern die toObject()-Methode auf. Das interne Ausführungsprinzip der beiden Methoden ist wie folgt:
Kopieren Sie den Codecode wie folgt:
var box={
//Überschreiben Sie die toString()-Methode des Box-Objekts
toString:function(){
return '123';
}
};
alarm(isNaN(box));//false
Alert(Box);//123 Intern ruft Alert() auch zuerst die valueOf() des Objekts auf und ruft dann die toString()-Methode auf.
6) Konvertieren Sie andere Datentypen in den Zahlentyp
Enthält drei Funktionen: Number(): kann alle Datentypen konvertieren; parseInt() und parseFloat() konvertieren nur Zeichenfolgen.
Kopieren Sie den Codecode wie folgt:
alarm(Number('123'));//123
alarm(Number('0234'));//234
alarm(Number(true));//1
alarm(Number(null));//(**)0
//Außer dem oben Gesagten gibt alles andere NaN zurück.
alarm(Anzahl(undefiniert))//NaN
Das interne Implementierungsprinzip von Number(): Wie isNaN() wird zuerst valueOf() und dann toString() aufgerufen. . Man kann sich also vorstellen, dass die Leistung relativ schlecht ist. . Solange das zu transformierende Objekt ein String ist, rufen Sie parseInt() oder parseFloat() auf, da diese den Typ nicht intern beurteilen müssen.
Beachten Sie beim Aufruf von parseInt() und parseFloat(): Der Teil der Zeichenfolge vom ersten numerischen Zeichen bis zur Zahl vor dem ersten numerischen Zeichen wird in eine Zahl umgewandelt.
Kopieren Sie den Codecode wie folgt:
alarm(parseInt('123leb'));//123
alarm(parseInt('123leb345'));//123
alarm(parseInt('len234'));//NaN
Wenn der Parameter in parseInt() vom Typ float ist, wird nur der ganzzahlige Teil der Zahl erhalten.
Kopieren Sie den Codecode wie folgt:
alarm(parseInt(56.12));//56
6. String-Typ
1) (*Wichtig*) Zeichenfolgen sind in ECMAScript unveränderlich: Zeichenfolgen ändern sich nach ihrer Erstellung nicht.
Um eine Zeichenfolgenvariable zu ändern, der ein Wert zugewiesen wurde, zerstören Sie zunächst die Zeichenfolge in der Variablen und füllen Sie die Variable dann mit einer Zeichenfolge, die den neuen Wert enthält.
Kopieren Sie den Codecode wie folgt:
var d='Hallo';
d=d+'shit';//Ausführungsprozess: Weisen Sie zuerst 'hello' einen Wert zu, löschen Sie dann die Zeichenfolge in d, verketten Sie die Zeichenfolgen 'hello' und 'shit' und weisen Sie dann der Variablen d einen Wert zu. (Der Wert der Zeichenfolge ändert sich also nicht, sobald sie erstellt wurde.)
2) Die toString()-Methode konvertiert andere Datentypen in den String-Typ. Wenn Sie jedoch mit null oder undefiniert arbeiten, wird ein Fehler gemeldet.
3) Die String()-Methode kann jedoch auch den Effekt von toString() erzielen, kann jedoch mit Null und Undefiniert arbeiten.
Internes Prinzip: Rufen Sie zuerst toString () auf. Wenn es in einen String konvertiert werden kann, wird das Ergebnis direkt zurückgegeben. Nein, dann beurteilen Sie, ob es null oder undefiniert ist, und geben Sie dann „null“ oder „undefiniert“ zurück.
Zusammenfassung: Wenn Sie wissen, dass die Variable nicht null oder undefiniert sein kann, verwenden Sie toString(), das leistungsfähiger ist als String(), da String() interne Beurteilungen vornehmen muss, was die Leistung beeinträchtigt.