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
Numberist ein Objekttyp, der einen primitivennumberumschließt. Durch das explizite Erstellen einesNumber-Objekts können Zahlen wie einnumberbehandelt werden, aber es wird normalerweise empfohlen, den primitiven Typnumberzu verwenden.
typeof numObjectist"object", abertypeof 42ist"number".
- Beachten Sie, dass die Verwendung des
newOperators zur Erstellung eines neuen Wrapper-Objekts ein anderes Ergebnis liefert als der Aufruf vonNumberals Funktion. Wenn es als Funktion aufgerufen wird, wird ein primitivernumberzurü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
stringumschließt. Durch die Verwendung einesString-Objekts können Sie auf Eigenschaften und Methoden von Zeichenketten zugreifen, aber normalerweise wird ein primitiverstringverwendet.
typeof strObjectist"object", abertypeof "Hello"ist"string".
- Wie
Numbergibt der Aufruf vonStringals Funktion einen primitivenstringzurü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
booleanumschließt. Sie können auch explizit einBoolean-Objekt erstellen, aber normalerweise wird der primitive Typbooleanverwendet.
typeof boolObjectist"object", abertypeof trueist"boolean".
- Ähnlich wie bei
Numbergibt der Aufruf vonBooleanals Funktion einen primitivenbooleanzurü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
Objectverwenden, um ein Wrapper-Objekt fürSymbolzu erstellen, aber im Allgemeinen verwenden Sie den primitiven TypSymboldirekt.
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,undefinedundsymbol, die keine direkten Methoden haben. - Wrapper-Objekte: Objekte wie
Number,StringundBoolean, 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.