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 primitivennumber
umschließt. Durch das explizite Erstellen einesNumber
-Objekts können Zahlen wie einnumber
behandelt werden, aber es wird normalerweise empfohlen, den primitiven Typnumber
zu verwenden.
typeof numObject
ist"object"
, abertypeof 42
ist"number"
.
- Beachten Sie, dass die Verwendung des
new
Operators zur Erstellung eines neuen Wrapper-Objekts ein anderes Ergebnis liefert als der Aufruf vonNumber
als Funktion. Wenn es als Funktion aufgerufen wird, wird ein primitivernumber
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 einesString
-Objekts können Sie auf Eigenschaften und Methoden von Zeichenketten zugreifen, aber normalerweise wird ein primitiverstring
verwendet.
typeof strObject
ist"object"
, abertypeof "Hello"
ist"string"
.
- Wie
Number
gibt der Aufruf vonString
als Funktion einen primitivenstring
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 einBoolean
-Objekt erstellen, aber normalerweise wird der primitive Typboolean
verwendet.
typeof boolObject
ist"object"
, abertypeof true
ist"boolean"
.
- Ähnlich wie bei
Number
gibt der Aufruf vonBoolean
als Funktion einen primitivenboolean
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ürSymbol
zu erstellen, aber im Allgemeinen verwenden Sie den primitiven TypSymbol
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
undsymbol
, die keine direkten Methoden haben. - Wrapper-Objekte: Objekte wie
Number
,String
undBoolean
, 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.