Objek Pembalut dalam JavaScript

Objek Pembalut dalam JavaScript

Artikel ini menjelaskan tentang objek pembalut dalam JavaScript.

YouTube Video

Objek Pembungkus

JavaScript mempunyai jenis primitif dan objek untuk mengendalikannya (objek pembungkus).

Jenis Asas

Jenis primitif mewakili satu nilai dan adalah ringkas serta ringan. Ini adalah tidak boleh diubah (tidak boleh diubah) dan tidak secara langsung mempunyai kaedah objek atau sifat, tetapi ia boleh ditukar sementara kepada objek pembalut untuk operasi.

string dan number adalah contoh jenis primitif. Sebaliknya, objek pembungkus dimulai dengan huruf besar, seperti String dan Number.

Objek Pembalut

Untuk memanipulasi jenis primitif, JavaScript sementara menjana objek pembungkus (Object wrappers). Objek pembungkus mengandungi kaedah dan sifat untuk jenis 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 jenis objek yang membungkus number primitif. Dengan secara eksplisit mencipta objek Number, anda boleh mengendali nombor seperti number, tetapi biasanya disarankan untuk menggunakan jenis number primitif.

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

  • Perlu diketahui bahawa menggunakan operator new untuk menjana objek pembungkus baru memberikan hasil yang berbeza daripada memanggil Number sebagai fungsi. Apabila dipanggil sebagai fungsi, jenis primitif number akan dikembalikan.

String

1let strObject = new String("Hello"); // Wrapper object
2
3console.log(typeof strObject);    // object
4console.log(strObject.valueOf()); // Hello
  • Ia adalah jenis objek yang membungkus string primitif. Dengan menggunakan objek String, anda boleh mengakses sifat dan kaedah string, tetapi biasanya string primitif digunakan.

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

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

Boolean

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

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

  • Serupa dengan Number, memanggil Boolean sebagai fungsi mengembalikan boolean primitif.

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 boleh menggunakan Object untuk mencipta objek pembungkus bagi Symbol, tetapi secara amnya, anda menggunakan jenis primitif Symbol secara langsung.

Perbezaan antara Jenis Primitif dan Objek Pembungkus

  • Jenis primitif adalah ringan dan cekap memori, tetapi tidak mempunyai sifat atau kaedah langsung. Namun, dalam JavaScript, walaupun dengan jenis primitif, objek pembungkus sementara secara automatik dicipta apabila diperlukan untuk menyediakan kaedah dan sifat.
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 dijana secara eksplisit yang boleh memberi kesan kepada memori dan prestasi, jadi penggunaan jenis primitif secara amnya disarankan.

Kesimpulan

  • Jenis Utama: Jenis ringan seperti number, string, boolean, null, undefined, dan symbol yang tidak mempunyai kaedah langsung.
  • Objek Pembungkus: Objek seperti Number, String, dan Boolean yang sementara ditukar daripada jenis utama.

Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.

YouTube Video