[Verwandte Empfehlungen: JavaScript-Video-Tutorials, Web-Frontend]
In diesem Artikel wird ein äußerst interessantes Konzept untersucht, nämlich die Attributmethoden von Basistypen. Wie wäre es, bist du etwas verwirrt? Lassen Sie es mich langsam sagen ~
In anderen objektorientierten Programmiersprachen wie Java
und C++
sind Attribute ein einzigartiges Konzept für Objekte, und der Grundtyp ist kein Konzept für Attributmethoden.
Ja, das ist eine weitere schlechte Idee von JavaScript
. Seine Engine ermöglicht es uns, Eigenschaftsmethoden zu verwenden, um grundlegende Datentypen wie Objekte zu manipulieren.
Bevor wir diese seltsame Funktion erklären, müssen wir zunächst klären, was der Unterschied zwischen Basistypen und Objekttypen ist.
{ }
JavaScript
?BigInt
gibt 7
Grundtypen in JavaScript
, nämlich: String
, Number
, Boolean
, Symbol
, null
und undefined
.{ }
Erstellen und speichern Sie mehrere Werte.JavaScript
verfügt auch über andere Arten von Objekten, z. B.über objektorientierte Funktionen Objekt, wodurch die Komplexität der Verwendung verringert wird.
Zum Beispiel:
let user = { Name: „xiaoming“, Hallo() { console.log(`Hallo, ich bin ${this.name}`); }}user.hello();
Wir kapseln die Attribute und Methoden des user
in ein Objekt, sodass es sehr einfach zu verwenden ist. Wir müssen nur obj.attr
verwenden, um Methoden oder Attribute aufzurufen.
Allerdings ist dies mit zusätzlichem Overhead verbunden (objektorientiert hat zusätzlichen Overhead), weshalb die objektorientierte Sprache C++
auch langsamer als C
ist.
als Objekten Es gibt zwei Probleme, die bei der Verwendung von Basistypen als Objekten schwer in Einklang zu bringen sind:
"abc".toUpperCase()
;JavaScript
die oben genannten Probleme auf sehr „einfache“ Weise löst:
String
, Number
, Boolean
und Symbol
Methoden und -Eigenschaften des Typs.Die Bedeutung der obigen Regeln besteht darin, dass der Basistyp immer noch ein Basistyp ist, aber was ist, wenn wir auf die Methoden und Eigenschaften eines Basistyps zugreifen möchten, wir werden den Basistyp in ein Objekt (Objekt-Wrapper) einschließen und dann Zerstören Sie es, nachdem der Zugriff abgeschlossen ist. Ehrlich gesagt klingt es etwas lächerlich.
Ein Beispiel
let name = "Trump";console.log(name.toUpperCase());//Methoden für
den Zugriff auf Grundtypen sind wie folgt:
Es scheint, dass es kein großes Problem gibt, aber es ist viel passiert, und wir müssen die folgenden Punkte wissen:
name
ist ein grundlegender Zeichenfolgentyp, und es gibt nichts Besonderes daran,name
zugegriffen wird, die eine Datei enthältwenn
toUpperCase
toUpperCase
istObwohl die Lösung voller Kompromisse (schlechter Ideen) ist, ist das Ergebnis immer noch gut und die erzielten Erfolge sind wie folgt:
obwohl dies theoretisch zutrifft, ist die JavaScript
Engine tatsächlich stark für diesen Prozess optimiert, und ich vermute, dass sie überhaupt keine zusätzlichen Objekte erstellt. Er erklärte lediglich mündlich, dass er sich an die Regeln hielt, als ob er tatsächlich ein vorübergehendes Objekt hätte.
In diesem Artikel wird das Konzept der grundlegenden Typmethoden nur kurz vorgestellt und nicht verschiedene Methoden erläutert. Mit der weiteren Vertiefung des Tutorials werden nach und nach viele Methoden einbezogen. Hier listen wir nur kurz einige häufig verwendete Methoden und Eigenschaften von Grundtypen auf.
Verschiedene Grundtypen verfügen über unterschiedliche Attributmethoden, die in den folgenden Kategorien aufgeführt sind:
length
gibt die Zeichenfolgenlänge zurück
console.log("abc".length);
Die Ergebnisse des obigen Codes sind wie folgt:
indexOf(ch)
gibt den Index des ersten Zeichens ch
in der Zeichenfolge
console.log("abc".indexOf('b'));console.log("abc".indexOf('d'));
zurück Die Ergebnisse der Codeausführung lauten wie folgt:
Wenn das Zeichen in der Zeichenfolge vorhanden ist, wird der Index (von 0
an gezählt) zurückgegeben. Wenn er nicht gefunden wird, wird -1
zurückgegeben.
concat(str)
-Methode, zwei Zeichenfolgen verbinden
let str1 = "hello ";let str2 = "world!";console.log(str1.concat(str2));console.log(str1);console.log(str2 );
Die Ergebnisse der Codeausführung lauten wie folgt:
replace(str1,str2)
-Methode, verwenden Sie str2
, um str1
zu ersetzen
let str = "javascript";console.log(str.replace('java','996'));console.log(str);
Die Ergebnisse der Codeausführung sind wie folgt:
toFixed(num)
-Methode, rundet Dezimalzahlen auf die angegebene Genauigkeit
console.log(9.3333333.toFixed(3));
Die Ergebnisse der Codeausführung lauten wie folgt:
toString()
Methode, Zahlen in Strings konvertieren
3.14.toString();//In '3.14'console.log((8).toString(2));//In Binärdatei '1000'console.log((( 9).toString(2));//In Binärdatei '1001' konvertierenconsole.log((996).toString(16));//In hexadezimale Zeichenfolge '3e4' konvertierenDie
Ergebnisse der Codeausführung lauten wie folgt:
toExponential()
Methode, konvertiert in die exponentielle Zählmethode
console.log(3.1415926.toExponential(2)); console.log(3.1415926.toExponential(3))
; wie folgt:
Weitere Methoden werden in den folgenden Kapiteln gezeigt, daher werde ich hier nicht näher darauf eingehen.
Wie Java
kann JavaScript
explizit „Objekt-Wrapper“ für Basistypen durch den new
Operator erstellen. Dieser Ansatz wird hier nur aus Gründen der Integrität erwähnt.
Bei diesem Ansatz gibt es Probleme, zum Beispiel:
let num = new Number(0);console.log(typeof num);console.log(typeof 0);
Die Ergebnisse der Codeausführung sind wie folgt:
Oder es kommt zu Verwirrung im Urteil:
let zero = new Number(0);if (zero) { // null ist wahr, weil es ein Objekt ist console.log('true');}
Das Ergebnis der Codeausführung ist wie folgt folgt:
Vergessen Sie dabei nicht, dass die Funktion String/Number/Boolean
ohne new
(Schlüsselwort) einen Wert in den entsprechenden Typ konvertieren kann: in einen String, eine Zahl oder einen booleschen Wert (Originaltyp).
Beispiel:
console.log(typeof Number('123'));
Hinweis:
Die beiden Typen
null
undundefined
haben keine Methoden.
JavaScript
die Grundtypen außer null
und undefined
viele nützliche Methoden bereit
eine kompromittierte Implementierungsmethode, die jedoch relativ zufriedenstellende Ergebnisse erzielt und die Attribute und Methodenaufrufe von Basistypen zu geringeren Kosten realisiert.
[Verwandte Empfehlungen: JavaScript-Video-Tutorials, Web-Frontend]
Das Obige zeigt, wie JavaScript erkennt, dass Basistypen dasselbe haben Attribute und Objekte als Objekte. Weitere Informationen zur Methode finden Sie in anderen verwandten Artikeln im Quellcode-Netzwerk!