1. Typkonvertierung
1.In String konvertieren
Das Interessante an den booleschen Werten, Zahlen und String-Primitiven von ECMAScript ist, dass es sich um Pseudoobjekte handelt, was bedeutet, dass sie tatsächlich Eigenschaften und Methoden haben.
wie:
Kopieren Sie den Codecode wie folgt:
var sColor = "blau";
alarm(sColor.length);//gibt „4“ aus
Zusammenfassend lässt sich sagen, dass die drei wichtigsten Grundwerte, boolesche Werte, Zahlen und Zeichenfolgen, alle toString()-Methoden haben. Alle von ECMAScript definierten Objekte verfügen über eine toString()-Methode, unabhängig davon, ob es sich um ein Pseudoobjekt oder ein reales Objekt handelt.
Die boolesche toString()-Methode gibt einfach „true“ oder „false“ aus und das Ergebnis wird durch den Wert der Variablen bestimmt:
Kopieren Sie den Codecode wie folgt:
var bFound = false;
alarm(bFound.toString());//gibt „false“ aus
Die toString()-Methode vom Typ Number ist etwas Besonderes. Sie verfügt über zwei Modi, nämlich den Standardmodus und den Basismodus. Im Standardmodus verwendet die toString()-Methode nur die entsprechende Zeichenfolge, um den numerischen Wert auszugeben eine Ganzzahl-, Gleitkommazahl- oder wissenschaftliche Notation-Zahlenmethode).
Kopieren Sie den Codecode wie folgt:
var iNum1 = 10;
var fNum2 = 10,0;
Alert(iNum1.toString()); //gibt „10“ aus
Alert(fNum2.toString()); //gibt „10“ aus
Mit dem Basismodus der toString()-Methode des Number-Typs können Zahlen in unterschiedlichen Basen (Basen) ausgegeben werden.
Kopieren Sie den Codecode wie folgt:
var iNum = 10;
Alert(iNum.toString(2)); //gibt „1010“ aus
Alert(iNum.toString(8)); //gibt „12“ aus
Alert(iNum.toString(16)); //gibt „A“ aus
2. In Zahlen umrechnen
ECMAScript bietet zwei Methoden zum Konvertieren nicht numerischer Grundwerte in Zahlen, nämlich parseInt () und parseFloat ().
Hinweis: Nur wenn diese Methoden für den String-Typ (außer Number) aufgerufen werden, können sie korrekt ausgeführt werden. Alle anderen Typen geben NaN zurück.
Zum Beispiel:
Kopieren Sie den Codecode wie folgt:
var iNum1 = parseInt("1234blue");//gibt 1234 zurück
var iNum2 = parseInt("oxA"); //gibt 10 zurück
var iNum3 = parseInt("22.5"); //gibt 22 zurück
var iNum4 = parseInt("blue"); //gibt NaN zurück
Die parseInt()-Methode verfügt auch über einen Basismodus, der Binär-, Oktal-, Hexadezimal- oder jede andere Basiszeichenfolge in eine dezimale Ganzzahl konvertieren kann. Der zweite Parameter gibt an, welche Basis analysiert werden soll.
Kopieren Sie den Codecode wie folgt:
var iNum1 = parseInt("AF",16);// gibt 175 zurück
var iNum2 = parseInt("10",2); // gibt 2 zurück
var iNum3 = parseInt("10",8); //gibt 8 zurück
var iNum4 = parseInt("10",10); //gibt 10 zurück
Hinweis: Wenn die Dezimalzahl führende Nullen enthält, verwenden Sie am besten die Basis 10, andernfalls erhalten Sie einen Oktalwert.
Kopieren Sie den Codecode wie folgt:
var iNum1 = parseInt("010"); // gibt 8 zurück
var iNum2 = parseInt("010",8); //gibt 8 zurück
var iNum3 = parseInt("010",10);//gibt 10 zurück
Die Methode parseFloat() ähnelt der Methode parseInt(). Sie betrachtet jedes Zeichen ab Position 0, bis das erste ungültige Zeichen gefunden wird, und wandelt dann die Zeichenfolge vor dem Zeichen in eine Zahl um. Bei dieser Methode ist der erste Dezimalpunkt ein gültiges Zeichen. Wenn zwei Dezimalstellen verwendet werden, wird die zweite Dezimalstelle als ungültig betrachtet. Ein weiterer Unterschied bei der Verwendung dieser Methode besteht darin, dass die Zeichenfolge eine Gleitkommazahl in Dezimalform darstellen muss.
Kopieren Sie den Codecode wie folgt:
var fNum1 = parseFloat("1234blue"); //gibt 1234,0 zurück
var fNum2 = parseFloat("0xA"); //gibt NaN zurück
var fNum3 = parseFloat("22.5"); //gibt 22.5 zurück
var fNum4 = parseFloat("22.34.5");//gibt 22,34 zurück
var fNum5 = parseFloat("0908");//gibt NaN zurück
var fNum6 = parseFloat("blue");//gibt NaN zurück
3. Erzwungene Typkonvertierung
Die drei Arten von Umwandlungen, die in ECMAScript verfügbar sind, sind wie folgt:
(1).Boolean(Wert)
Konvertieren Sie den angegebenen Wert in einen booleschen Typ.
Die Funktion Boolean() gibt true zurück, wenn der umzuwandelnde Wert eine Zeichenfolge, eine Zahl ungleich Null oder ein Objekt mit mindestens einem Zeichen ist. Wenn der Wert eine leere Zeichenfolge, die Zahl 0, undefiniert oder null ist, wird „false“ zurückgegeben.
wie:
Kopieren Sie den Codecode wie folgt:
var b1 = Boolean(""); // false;
var b2 = Boolean("hi");//true
var b3 = Boolean(100);//true
var b4 = Boolean(null);//false
var b5 = Boolean(0);//false
var b6 = Boolean(new Object());//true
(2).Nummer(Wert)
Konvertiert den angegebenen Wert in eine Zahl (kann eine Ganzzahl oder eine Gleitkommazahl sein).
Denken Sie auch daran, dass die Methoden parseInt() und parseFloat() nur die Zeichenfolge vor dem ersten ungültigen Zeichen konvertieren, sodass „4.5.6“ in „4.5“ konvertiert wird. Beim Casting mit Number() gibt „4.5.6“ NaN zurück, da der gesamte Zeichenfolgenwert nicht in eine Zahl umgewandelt werden kann. Wenn die Zeichenfolge vollständig konvertiert werden kann, bestimmt Number(), ob die Methode parseInt() oder die Methode parseFloat() aufgerufen werden soll.
wie:
Kopieren Sie den Codecode wie folgt:
Zahl(false);//0
Zahl(wahr);//1
Zahl(undefiniert);//NaN
Zahl(null);//0
Zahl("5.5");//5.5
Zahl("56");//56
Number("5.6.7");//NaN
Number(new Object());//NaN
Zahl(100);//100
(3).String(Wert)
Konvertieren Sie den angegebenen Wert in eine Zeichenfolge.
Der einzige Unterschied zum Aufruf der toString()-Methode besteht darin, dass die Umwandlung eines Null- oder undefinierten Werts eine Zeichenfolge erzeugt, ohne einen Fehler auszulösen:
Kopieren Sie den Codecode wie folgt:
var s1 = String(null);//"null"
var oNull = null;
var s2 = oNull.toString();//verursacht einen Fehler
2. Referenztyp
Referenztypen werden normalerweise als Klassen bezeichnet. Dies bedeutet, dass das Objekt verarbeitet wird, wenn ein Referenzwert angetroffen wird. ECMAScript definiert „Objektdefinitionen“, die logisch äquivalent zu Klassen in anderen Programmiersprachen sind.
1.Objektklasse
Alle Klassen in ECMAScript werden von dieser Klasse geerbt und alle Eigenschaften und Methoden in der Object-Klasse werden in anderen Klassen angezeigt (überschrieben).
Eigenschaften der Objektklasse:
(1).Konstruktor----Referenz (Zeiger) auf die Funktion, die das Objekt erstellt. Für die Object-Klasse zeigt dieser Zeiger auf die ursprüngliche Funktion object().
(2).Prototyp ---- Ein Verweis auf den Objektprototyp des Objekts. Für alle Klassen wird standardmäßig eine Instanz des Object-Objekts zurückgegeben.
Methoden der Objektklasse:
(1).HasOwnProperty(property)----Bestimmen Sie, ob das Objekt ein bestimmtes Attribut hat. Die Eigenschaft muss als Zeichenfolge angegeben werden (zum Beispiel: o.hasOwnProperty("name")).
(2).IsPrototypeOf(object)----Bestimmen Sie, ob das Objekt der Prototyp eines anderen Objekts ist.
(3).PropertyIsEnumerable(property)----Bestimmen Sie, ob die angegebene Eigenschaft mithilfe der for..in-Anweisung aufgezählt werden kann.
(4).ToString()----Gibt die ursprüngliche String-Darstellung des Objekts zurück. Verschiedene ECMAScript-Implementierungen haben unterschiedliche Werte.
(5).ValueOf()----Gibt den ursprünglichen Wert zurück, der am besten zum Objekt passt. Bei vielen Klassen ist der von dieser Methode zurückgegebene Wert derselbe wie der Rückgabewert von toString().
2.Boolesche Klasse
Boolesche Objekte werden in ECMAScript selten verwendet, und selbst wenn, sind sie nicht leicht zu verstehen.
Zum Beispiel:
Kopieren Sie den Codecode wie folgt:
var oFalseObject = new Boolean(false);
var bResult = oFalseObject && true;//gibt true aus;
Grund: In booleschen Ausdrücken werden alle Objekte automatisch in „true“ konvertiert.
3. Zahlenklasse
Spezielle Werte wie Number.MAX_VALUE sind statische Eigenschaften der Number-Klasse. Um den ursprünglichen Wert von Number eines numerischen Objekts zu erhalten, verwenden Sie einfach die Methode valueOf():
var iNumber = oNumberObject.valueOf();
Zusätzlich zu den von der Object-Klasse geerbten Standardmethoden verfügt die Number-Klasse über mehrere spezielle Methoden zur Verarbeitung numerischer Werte.
toFixed()-Methode:
Gibt eine Zeichenfolgendarstellung einer Zahl mit der angegebenen Anzahl an Dezimalstellen zurück. Die Methode kann Zahlen mit 0 bis 20 Dezimalstellen darstellen. Werte außerhalb dieses Bereichs führen zu einem Fehler.
wie:
Kopieren Sie den Codecode wie folgt:
var oNumberObject = neue Zahl(99);
aler(oNumberObject.toFixed(2));//gibt „99,00“ aus
toExponential()-Methode:
Gibt die Zeichenfolgendarstellung der Zahl in wissenschaftlicher Notation zurück. Diese Methode benötigt außerdem einen Parameter, der die Anzahl der auszugebenden Dezimalstellen angibt. Zum Beispiel:
Kopieren Sie den Codecode wie folgt:
var oNumberObj = neue Zahl(99);
alarm(oNumberObj.toExponential(1));//gibt „9.9e+1“ aus
toPrecision()-Methode:
Gibt eine vorgegebene oder exponentielle Form einer Zahl zurück, je nachdem, welche Form am sinnvollsten ist. Es gibt ein Argument, nämlich die Gesamtzahl der Ziffern, die zur Darstellung der Zahl verwendet werden (ohne Exponent).
Kopieren Sie den Codecode wie folgt:
var oNumberObj = neue Zahl(99);
alarm(oNumberObj.toPrecision(1));//gibt „1e+2“ ==100 aus
Wie man sieht, rundet die Methode toPrecision() die Zahl, um eine Zahl zu erhalten, die dem wahren Wert möglichst nahe kommt.
wie:
Kopieren Sie den Codecode wie folgt:
var oNumberObj = neue Zahl(99);
alarm(oNumberObj.toPrecision(2));// gibt „99“ aus
alarm(oNumberObj.toPrecision(3));// gibt „99,0“ aus
Die Methoden toFixed(), toExponential() und toPrecision() führen alle Rundungsoperationen durch, um eine Zahl korrekt mit der richtigen Anzahl an Dezimalstellen darzustellen.
toLocaleString()-Methode:
Es kann im Format auf der Seite angezeigt werden, zum Beispiel wird 5210,50 als 5.210,50 angezeigt, aber wenn sein Wert verwendet wird, sollte er in der Form parseFloat($("N_YJJE").value.replace(// ersetzt werden. ,/g, "")); Entfernen Sie das Komma und erhalten Sie seinen Wert.
Hinweis: Ähnlich wie boolesche Objekte sind auch Zahlenobjekte wichtig, sie sollten jedoch sparsam verwendet werden, um mögliche Probleme zu vermeiden. Verwenden Sie nach Möglichkeit die Rohdarstellung von Zahlen.
4.String-Klasse
Die Methode valueOf() und die Methode toString() des String-Objekts geben beide den ursprünglichen Wert des String-Typs zurück:
Kopieren Sie den Codecode wie folgt:
alarm(oStringObj.valueOf() == oStringObj.toString());//gibt „true“ aus
Die String-Klasse hat das Attribut Länge, das die Anzahl der Zeichen in der Zeichenfolge angibt:
Kopieren Sie den Codecode wie folgt:
var oStringObj = new String("hello world");
alarm(oStringObj.length);gibt „11“ aus
Hinweis: Auch wenn die Zeichenfolge Doppelbyte-Zeichen enthält, zählt jedes Zeichen nur als ein Zeichen.
charAt()-Methode:
Gibt eine Zeichenfolge zurück, die das Zeichen an der angegebenen Position enthält:
Kopieren Sie den Codecode wie folgt:
var oStringObj = new String("hello world");
alarm(oStringObj.charAt(1));gibt „e“ aus
charCodeAt()-Methode:
Gibt eine Zeichenfolge zurück, die den Zeichencode an der angegebenen Position enthält:
Kopieren Sie den Codecode wie folgt:
var oStringObj = new String("hello world");
alarm(oStringObj.charCodeAt(1));gibt „101“ aus
concat()-Methode:
Wird verwendet, um einen oder mehrere Strings mit dem ursprünglichen Wert eines String-Objekts zu verketten. Das ursprüngliche String-Objekt bleibt unverändert.
Kopieren Sie den Codecode wie folgt:
var oStringObj = new String("hello");
var sResult = oStringObj.concat("world");//oStringObj+"world";
alarm(sResult);//gibt „Hallo Welt“ aus
alarm(oStringObj);//gibt „Hallo“ aus
Die Methoden indexOf() und lastIndexOf() geben die Position des angegebenen Teilstrings in einem anderen String zurück (oder -1, wenn der Teilstring nicht gefunden wird). Der Unterschied zwischen diesen beiden Methoden besteht darin, dass indexOf() die Teilzeichenfolge am Anfang der Zeichenfolge (Position 0) durchsucht, während lastIndexOf() die Teilzeichenfolge am Ende der Zeichenfolge durchsucht.
localeCompare() vergleicht Zeichenfolgen (Vergleich in alphabetischer Reihenfolge, die späteren sind größer). Diese Methode verfügt über einen Parameter – die zu vergleichende Zeichenfolge – und gibt einen der folgenden drei Werte zurück:
1. Wenn das String-Objekt alphabetisch vor der Zeichenfolge im Parameter angeordnet ist, wird eine negative Zahl zurückgegeben (am häufigsten ist -1, aber die tatsächliche Rückgabe wird durch die Implementierung bestimmt).
2. Wenn das String-Objekt gleich der Zeichenfolge im Parameter ist, wird 0 zurückgegeben.
3. Wenn das String-Objekt alphabetisch nach der Zeichenfolge im Parameter angeordnet ist, geben Sie eine positive Zahl zurück (am häufigsten ist 1, aber die tatsächliche Rückgabe wird durch die Implementierung bestimmt).
Slice()- und Substring()-Methoden:
Beide Methoden geben Teilstrings des zu verarbeitenden Strings zurück und akzeptieren jeweils einen oder zwei Parameter. Der erste Parameter ist die Startposition des abzurufenden Teilstrings und der zweite Parameter ist die Position vor dem Ende des abzurufenden Teilstrings (die Zeichen an der Endposition sind nicht im zurückgegebenen Wert enthalten). Wenn das zweite Argument weggelassen wird, wird das Abschlussbit standardmäßig auf die Länge der Zeichenfolge gesetzt. Keine dieser Methoden ändert den Wert des String-Objekts selbst.
Kopieren Sie den Codecode wie folgt:
var oStringObj = new String("hello world");
alarm(oStringObj.slice(3));//gibt „lo world“ aus
alarm(oStringObj.slice(3,7));//gibt „low“ aus
Hinweis: Bei negativen Parametern fügt die Methode „slice()“ die Länge der Zeichenfolge zum Parameter hinzu und die Methode „substring()“ behandelt sie als 0 (d. h. sie wird ignoriert).
Kopieren Sie den Codecode wie folgt:
var oStringObj = new String("hello world");
alarm(oStringObj.slice(-3));//outputs „rld“ entspricht dem umgekehrten Abruf
alarm(oStringObj.substring(-3));//gibt „Hallo Welt“ aus
alarm(oStringObj.slice(3,-4));//gibt „low“ aus
Alert(oStringObj.substring(3,-4));//outputs „hel“ substring() verwendet immer die kleinere Zahl als Startbit und die größere Zahl als Endbit.
toLowerCase(), toLocalLowerCase(), toUpperCase() und toLocaleUpperCase():
Die ersten beiden Methoden konvertieren die Zeichenfolge vollständig in Kleinbuchstaben, und die beiden letztgenannten Methoden werden verwendet, um die Zeichenfolge vollständig in Großbuchstaben umzuwandeln. Die Methoden toLocalLowerCase() und toLocaleUpperCase() werden basierend auf bestimmten Regionen implementiert.
Denken Sie daran: Alle Eigenschaften und Methoden der String-Klasse können auf String-Primitivwerte angewendet werden, da es sich um Pseudoobjekte handelt.
5. Instanz des Operators
Es gibt ein Problem bei der Verwendung des Referenztyps zum Speichern von Werten, wenn der Operator typeof verwendet wird. Unabhängig davon, auf welchen Objekttyp verwiesen wird, gibt er „Objekt“ zurück. Die Methode „instanceof“ erfordert von Entwicklern eine explizite Bestätigung, dass das Objekt von einem bestimmten Typ ist. wie:
Kopieren Sie den Codecode wie folgt:
var oStrObj = new String("hello world");
alarm(oStrObj exampleof String);//gibt „true“ aus