Objek Pembungkus dalam JavaScript

Objek Pembungkus dalam JavaScript

Artikel ini menjelaskan tentang objek pembungkus dalam JavaScript.

YouTube Video

Objek Pembungkus

JavaScript memiliki tipe primitif dan objek untuk menangani mereka (objek bungkus).

Tipe Primitif

Tipe primitif merepresentasikan nilai tunggal dan bersifat sederhana serta ringan. Ini adalah immutable (tidak dapat diubah) dan tidak langsung memiliki metode atau properti objek, tetapi dapat sementara dikonversi menjadi objek pembungkus untuk operasi.

string dan number adalah contoh tipe primitif. Di sisi lain, objek bungkus diawali dengan huruf kapital, seperti String dan Number.

Objek Pembungkus

Untuk memanipulasi tipe primitif, JavaScript secara sementara menghasilkan objek pembungkus (Object wrappers). Objek pembungkus berisi metode dan properti untuk tipe primitif.

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 adalah tipe objek yang membungkus tipe primitif number. Dengan secara eksplisit membuat objek Number, Anda dapat menangani angka seperti number, tetapi biasanya disarankan untuk menggunakan tipe primitif number.

typeof numObject adalah "object", tetapi typeof 42 adalah "number".

  • Perlu diketahui bahwa menggunakan operator new untuk menghasilkan objek pembungkus baru akan memberikan hasil yang berbeda dari memanggil Number sebagai fungsi. Saat dipanggil sebagai fungsi, number primitif dikembalikan.

String

1let strObject = new String("Hello"); // Wrapper object
2
3console.log(typeof strObject);    // object
4console.log(strObject.valueOf()); // Hello
  • Ini adalah tipe objek yang membungkus tipe primitif string. Dengan menggunakan objek String, Anda dapat mengakses properti dan metode string, tetapi biasanya yang digunakan adalah tipe primitif string.

typeof strObject adalah "object", tetapi typeof "Hello" adalah "string".

  • Seperti Number, memanggil String sebagai fungsi akan mengembalikan tipe primitif string.

Boolean

1let boolObject = new Boolean(true); // Wrapper object
2
3console.log(typeof boolObject);    // object
4console.log(boolObject.valueOf()); // true
  • Ini adalah tipe objek yang membungkus tipe primitif boolean. Anda juga dapat secara eksplisit membuat objek Boolean, tetapi biasanya tipe primitif boolean yang digunakan.

typeof boolObject adalah "object", tetapi typeof true adalah "boolean".

  • Mirip dengan Number, memanggil Boolean sebagai fungsi akan mengembalikan tipe primitif boolean.

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()); //
  • Anda dapat menggunakan Object untuk membuat objek pembungkus untuk Symbol, tetapi secara umum, Anda menggunakan tipe primitif Symbol secara langsung.

Perbedaan antara Tipe Primitif dan Objek Pembungkus

  • Tipe primitif ringan dan efisien memori, tetapi tidak memiliki properti atau metode langsung. Namun, dalam JavaScript, bahkan dengan tipe primitif, objek pembungkus sementara secara otomatis dibuat saat diperlukan untuk menyediakan metode dan properti.
1let text = "Hello";
2
3// A temporary String object is created,
4// allowing access to the length property
5console.log(text.length);
  • Objek pembungkus adalah objek yang dibuat secara eksplisit dan dapat memengaruhi memori serta kinerja, sehingga penggunaan tipe primitif umumnya direkomendasikan.

Kesimpulan

  • Tipe Primitif: Tipe ringan seperti number, string, boolean, null, undefined, dan symbol yang tidak memiliki metode langsung.
  • Objek Pembungkus: Objek seperti Number, String, dan Boolean yang sementara diubah dari tipe primitif.

Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.

YouTube Video