Wrapper-Objekte in JavaScript

Wrapper-Objekte in JavaScript

Dieser Artikel erklärt die Wrapper-Objekte in JavaScript.

YouTube Video

Wrapper-Objekte

JavaScript verfügt über primitive Datentypen und Objekte, um diese zu handhaben (Wrapper-Objekte).

Primitive Datentypen

Primitive Typen repräsentieren einen einzelnen Wert und sind einfach und leichtgewichtig. Diese sind unveränderlich (unänderbar) und besitzen direkt keine Objektmethoden oder -eigenschaften, können jedoch vorübergehend in Wrapper-Objekte für Operationen umgewandelt werden.

string und number sind Beispiele für primitive Typen. Im Gegensatz dazu beginnen Wrapper-Objekte mit einem Großbuchstaben, wie String und Number.

Wrapper-Objekte

Um primitive Typen zu verarbeiten, generiert JavaScript vorübergehend Wrapper-Objekte (Object-Wrapper). Wrapper-Objekte enthalten Methoden und Eigenschaften für die primitiven Typen.

Number

1let numObject = new Number(42);   // Wrapper object
2
3console.log(typeof numObject);    // object
4console.log(numObject.valueOf()); // 42
5
6let numValue = Number(42);        // Return primitive value
7
8console.log(typeof numValue);     // number
9console.log(numValue);            // 42
  • Number ist ein Objekttyp, der einen primitiven number umschließt. Durch das explizite Erstellen eines Number-Objekts können Zahlen wie ein number behandelt werden, aber es wird normalerweise empfohlen, den primitiven Typ number zu verwenden.

typeof numObject ist "object", aber typeof 42 ist "number".

  • Beachten Sie, dass die Verwendung des new Operators zur Erstellung eines neuen Wrapper-Objekts ein anderes Ergebnis liefert als der Aufruf von Number als Funktion. Wenn es als Funktion aufgerufen wird, wird ein primitiver number zurückgegeben.

String

1let strObject = new String("Hello"); // Wrapper object
2
3console.log(typeof strObject);    // object
4console.log(strObject.valueOf()); // Hello
  • Es ist ein Objekttyp, der einen primitiven string umschließt. Durch die Verwendung eines String-Objekts können Sie auf Eigenschaften und Methoden von Zeichenketten zugreifen, aber normalerweise wird ein primitiver string verwendet.

typeof strObject ist "object", aber typeof "Hello" ist "string".

  • Wie Number gibt der Aufruf von String als Funktion einen primitiven string zurück.

Boolean

1let boolObject = new Boolean(true); // Wrapper object
2
3console.log(typeof boolObject);    // object
4console.log(boolObject.valueOf()); // true
  • Es ist ein Objekttyp, der einen primitiven boolean umschließt. Sie können auch explizit ein Boolean-Objekt erstellen, aber normalerweise wird der primitive Typ boolean verwendet.

typeof boolObject ist "object", aber typeof true ist "boolean".

  • Ähnlich wie bei Number gibt der Aufruf von Boolean als Funktion einen primitiven boolean zurück.

BigInt

 1let bigIntObject = Object(9007199254740991n); // Wrapper object
 2
 3console.log(typeof bigIntObject);    // object
 4console.log(bigIntObject.valueOf()); // 9007199254740991n
 5
 6let bigIntValue = BigInt(9007199254740991);   // Return primitive BigInt
 7
 8console.log(typeof bigIntValue);     // bigint
 9console.log(bigIntValue);            // 9007199254740991n
10
11// Error
12let bigIntObject2 = new BigInt(9007199254740991n);
  • Objectを使ってBigIntのラッパーオブジェクトを生成できますが、通常はプリミティブ型のbigintを直接使うのが一般的です。

typeof bigIntObject"object"であるのに対し、typeof 9007199254740991n"bigint"です。

  • BigIntを関数として呼び出すとプリミティブなbigintを返しますが、new演算子をつけてBigIntのラッパーオブジェクトを生成することはできません。

Symbol

1let symObject = Object(Symbol("id")); // Wrapper object for Symbol
2
3console.log(typeof symObject);    // object
4console.log(symObject.valueOf()); //
  • Sie können Object verwenden, um ein Wrapper-Objekt für Symbol zu erstellen, aber im Allgemeinen verwenden Sie den primitiven Typ Symbol direkt.

Unterschiede zwischen primitiven Typen und Wrapper-Objekten

  • Primitive Typen sind leichtgewichtig und speichereffizient, verfügen jedoch nicht über direkte Eigenschaften oder Methoden. In JavaScript werden jedoch auch bei primitiven Typen bei Bedarf automatisch temporäre Wrapper-Objekte erstellt, um Methoden und Eigenschaften bereitzustellen.
1let text = "Hello";
2
3// A temporary String object is created,
4// allowing access to the length property
5console.log(text.length);
  • Wrapper-Objekte sind explizit erstellte Objekte, die Speicher und Leistung beeinflussen können. Daher wird im Allgemeinen empfohlen, primitive Typen zu verwenden.

Fazit

  • Primitivtypen: Leichtgewichtige Typen wie number, string, boolean, null, undefined und symbol, die keine direkten Methoden haben.
  • Wrapper-Objekte: Objekte wie Number, String und Boolean, die vorübergehend aus Primitivtypen konvertiert werden.

Sie können den obigen Artikel mit Visual Studio Code auf unserem YouTube-Kanal verfolgen. Bitte schauen Sie sich auch den YouTube-Kanal an.

YouTube Video