Heim  >  Artikel  >  Web-Frontend  >  Analyse grundlegender Verpackungstypen in JavaScript

Analyse grundlegender Verpackungstypen in JavaScript

黄舟
黄舟Original
2017-10-25 09:41:081406Durchsuche

Grundverpackungstypen

Grundverpackungstypen sind spezielle Referenztypen. Immer wenn ein Basistypwert gelesen wird, wird im Hintergrund ein entsprechendes Objekt des Basisverpackungstyps erstellt, sodass Attribute und Methoden für nachfolgende Vorgänge aufgerufen werden können.

ECMAScript bietet außerdem drei grundlegende Verpackungstypen: Zahl, Zeichenfolge und Boolean.

Aktueller Status des Codes

Wir schreiben häufig Code wie diesen. Variablen vom Basistyp können als Objekte zum Aufrufen von Eigenschaften und Methoden verwendet werden, aber dies ist kein echtes Objekt, sondern nur eine Variable. also dieses Warum?


1    var str = "hello world";
2     console.log(str.length);     // 11
3     console.log(str.toUpperCase());// HELLO WORLD

Um die Manipulation grundlegender Datentypwerte zu erleichtern, erstellt der grundlegende Datentypwert in JavaScript tatsächlich einen entsprechenden grundlegenden Wrapper-Typ Objekt im Hintergrund , außer null und undefiniert, alle Grundtypen haben entsprechende Verpackungstypen.

Mit dem obigen Code führt der Hintergrund automatisch die folgende Verarbeitung durch:

Beim Ausführen der zweiten Zeile:

  1. Erstellen Sie eine Instanz des Strings Typ;

  2. Das angegebene Attribut für die Instanz aufrufen

  3. Diese Instanz zerstören; Führen Sie die ersten drei Zeilen aus:

Erstellen Sie eine Instanz des String-Typs.

  1. Rufen Sie die angegebene Methode für die Instanz auf

  2. Zerstören Sie diese Instanz;

  3. Sie können sich die oben genannten drei Schritte als die Ausführung des folgenden ECMAScript-Codes vorstellen:

Auf diese Weise werden die Zeichenfolgen im obigen Code zu Objekten. Das Gleiche gilt für die grundlegenden Datentypen, die den Typen Boolean und Number entsprechen Verstehen Sie die Grundlagen davon? Der Verpackungstyp ist eigentlich der Typ, der dem Basisdatentyp


Typzuordnung
1 // 执行到第二行时
2 var str = new String("hello world");
3 str.length;
4 str = null;
5 
6 // 执行到第三行时
7 var str = new String("hello world");
8 str.toUpperCase();
9 str = null;
string String
Nummer Nummer
Boolescher Typ (true). , false) Boolean

Hinweis:

Das ist nicht der Fall Der Verpackungstyp, der die Methode bereitstellt, aber das Javascript-Engine-Backend hat eine Instanz (Objekt) erstellt, die dem Basisverpackungstyp entspricht.
类型映射关系
string String
number Number
布尔类型(true、false) Boolean

Immer wenn ein Basistypwert gelesen wird, wird ein entsprechender Basisverpackungstyp erstellt Im Hintergrund wird ein Objekt erstellt, z. B.:

Der Unterschied zwischen Referenztypobjekten und Basisverpackungstypobjekten

Das Wichtigste Der Unterschied besteht darin, dass die Lebenszyklen dieser beiden Objekte unterschiedlich sind.


Durch den obigen Codeblock wissen wir, dass das vom Basisverpackungstyp automatisch erstellte Objekt beim Aufruf des Objekts vorhanden ist und nach Abschluss des Aufrufs zerstört wird Neues Schlüsselwort, das Objekt ist derzeit im Gültigkeitsbereich vorhanden.

1 var str = new String("hello world");
2  str.length;
3  str = null;

Der obige Code fügt das Altersattribut zur Zeichenfolge s hinzu, aber wenn der Code in der dritten Zeile ausgeführt wird, wurde das Namensattribut zerstört Code wird in der dritten Zeile ausgeführt. Beim Ausführen wird eine weitere String-Instanz erstellt, aber diese Instanz verfügt nicht über das Altersattribut, daher ist die Ausgabe undefiniert; >Zusammenfassung

1. Alle Basisdatentypen werden Basisverpackungstypen mit demselben Namen zugeordnet (außer null und undefiniert).

2. Beim Lesen eines Basistypwerts wird ein entsprechendes Basisverpackungstypobjekt erstellt, wodurch Datenoperationen erleichtert werden.
3. Sobald das Objekt der Basisverpackungsklasse ausgeführt wird, wird es sofort zerstört.

Das obige ist der detaillierte Inhalt vonAnalyse grundlegender Verpackungstypen in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn