Simbol JavaScript (dengan Contoh)

Dalam tutorial ini, anda akan belajar mengenai Simbol JavaScript dengan bantuan contoh.

Simbol JavaScript

JavaScript ES6 memperkenalkan jenis data primitif baru yang dipanggil Symbol. Simbol tidak berubah (tidak dapat diubah) dan unik. Sebagai contoh,

 // two symbols with the same description const value1 = Symbol('hello'); const value2 = Symbol('hello'); console.log(value1 === value2); // false

Walaupun nilai1 dan nilai2 keduanya mengandungi keterangan yang sama, mereka berbeza.

Membuat Simbol

Anda menggunakan Symbol()fungsi untuk membuat a Symbol. Sebagai contoh,

 // creating symbol const x = Symbol() typeof x; // symbol

Anda boleh memberikan rentetan pilihan sebagai keterangannya. Sebagai contoh,

 const x = Symbol('hey'); console.log(x); // Symbol(hey)

Huraian Simbol Akses

Untuk mengakses keterangan simbol, kami menggunakan .operator. Sebagai contoh,

 const x = Symbol('hey'); console.log(x.description); // hey

Tambahkan Simbol sebagai Kekunci Objek

Anda boleh menambahkan simbol sebagai kunci dalam objek menggunakan tanda kurung persegi (). Sebagai contoh,

 let id = Symbol("id"); let person = ( name: "Jack", // adding symbol as a key (id): 123 // not "id": 123 ); console.log(person); // (name: "Jack", Symbol(id): 123)

Simbol tidak termasuk dalam… di Loop

The for… ingelung tidak Itekadar atas hartanah simbolik. Sebagai contoh,

 let id = Symbol("id"); let person = ( name: "Jack", age: 25, (id): 12 ); // using for… in for (let key in person) ( console.log(key); )

Pengeluaran

 umur nama

Faedah Menggunakan Simbol dalam Objek

Sekiranya coretan kod yang sama digunakan dalam pelbagai program, maka lebih baik digunakan Symbolsdalam kekunci objek. Ini kerana anda boleh menggunakan nama kunci yang sama dalam kod yang berbeza dan mengelakkan masalah pendua. Sebagai contoh,

 let person = ( name: "Jack" ); // creating Symbol let id = Symbol("id"); // adding symbol as a key person(id) = 12;

Dalam program di atas, jika personobjek tersebut juga digunakan oleh program lain, maka anda tidak ingin menambahkan properti yang dapat diakses atau diubah oleh program lain. Oleh itu dengan menggunakan Symbol, anda membuat harta unik yang boleh anda gunakan.

Sekarang, jika program lain juga perlu menggunakan sifat bernama id , tambahkan Simbol bernama iddan tidak akan ada masalah pendua. Sebagai contoh,

 let person = ( name: "Jack" ); let id = Symbol("id"); person(id) = "Another value";

Dalam program di atas, walaupun nama yang sama digunakan untuk menyimpan nilai, Symboljenis data akan mempunyai nilai yang unik.

Dalam program di atas, jika kunci rentetan digunakan, maka program kemudian akan mengubah nilai harta tanah. Sebagai contoh,

 let person = ( name: "Jack" ); // using string as key person.id = 12; console.log(person.id); // 12 // Another program overwrites value person.id = 'Another value'; console.log(person.id); // Another value

Dalam program di atas, yang kedua user.idmenimpa nilai sebelumnya.

Kaedah Simbol

Terdapat pelbagai kaedah yang tersedia dengan Symbol.

Kaedah Penerangan
for() Mencari simbol yang ada
keyFor() Mengembalikan kunci simbol bersama dari daftar simbol global.
toSource() Mengembalikan rentetan yang mengandungi sumber objek Simbol
toString() Mengembalikan rentetan yang mengandungi keterangan Simbol
valueOf() Mengembalikan nilai primitif objek Simbol.

Contoh: Kaedah Simbol

 // get symbol by name let sym = Symbol.for('hello'); let sym1 = Symbol.for('id'); // get name by symbol console.log( Symbol.keyFor(sym) ); // hello console.log( Symbol.keyFor(sym1) ); // id

Sifat Simbol

Hartanah Penerangan
asyncIterator Mengembalikan AsyncIterator lalai untuk objek
hasInstance Menentukan apakah objek konstruktor mengenali objek sebagai contohnya
isConcatSpreadable Menunjukkan apakah objek harus diratakan ke elemen susunannya
iterator Mengembalikan iterator lalai untuk objek
match Perlawanan dengan tali
matchAll Mengembalikan iterator yang menghasilkan padanan ungkapan biasa dengan rentetan
replace Mengganti substring tali yang dipadankan
search Mengembalikan indeks dalam rentetan yang sepadan dengan ungkapan biasa
split Membahagi rentetan pada indeks yang sesuai dengan ungkapan biasa
species Membuat objek terbitan
toPrimitive Menukar objek ke nilai primitif
toStringTag Memberi keterangan lalai mengenai objek
description Mengembalikan rentetan yang mengandungi keterangan simbol

Contoh: Contoh Sifat Simbol

 const x = Symbol('hey'); // description property console.log(x.description); // hey const stringArray = ('a', 'b', 'c'); const numberArray = (1, 2, 3); // isConcatSpreadable property numberArray(Symbol.isConcatSpreadable) = false; let result = stringArray.concat(numberArray); console.log(result); // ("a", "b", "c", (1, 2, 3))

Artikel menarik...