Simbol JavaScript (dengan Contoh)

Dalam tutorial ini, Anda akan belajar tentang Simbol JavaScript dengan bantuan contoh.

Simbol JavaScript

JavaScript ES6 memperkenalkan tipe data primitif baru yang disebut Symbol. Simbol tidak dapat diubah (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

Meskipun nilai1 dan nilai2 berisi deskripsi yang sama, keduanya berbeda.

Membuat Simbol

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

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

Anda dapat memberikan string opsional sebagai deskripsinya. Sebagai contoh,

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

Deskripsi Simbol Akses

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

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

Tambahkan Simbol sebagai Kunci Objek

Anda dapat menambahkan simbol sebagai kunci dalam objek menggunakan tanda kurung siku (). 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 for… in Loop

The for… inLoop tidak iterate atas properti 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); )

Keluaran

 usia nama

Manfaat Menggunakan Simbol di Objek

Jika potongan kode yang sama digunakan di berbagai program, maka lebih baik digunakan Symbolsdi kunci objek. Itu karena Anda dapat menggunakan nama kunci yang sama dalam kode yang berbeda dan menghindari masalah duplikasi. 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. Karenanya dengan menggunakan Symbol, Anda membuat properti unik yang dapat Anda gunakan.

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

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

Dalam program di atas, meskipun nama yang sama digunakan untuk menyimpan nilai, Symboltipe data akan memiliki nilai unik.

Dalam program di atas, jika kunci string digunakan, maka program selanjutnya akan mengubah nilai properti. 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.

Metode Simbol

Ada berbagai metode yang tersedia dengan Simbol.

metode Deskripsi
for() Mencari simbol yang ada
keyFor() Mengembalikan kunci simbol bersama dari registri simbol global.
toSource() Mengembalikan string yang berisi sumber dari objek Simbol
toString() Mengembalikan string yang berisi deskripsi Simbol
valueOf() Mengembalikan nilai primitif dari objek Simbol.

Contoh: Metode 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

Properti Simbol

Properti Deskripsi
asyncIterator Mengembalikan AsyncIterator default untuk sebuah objek
hasInstance Menentukan apakah objek konstruktor mengenali objek sebagai instance-nya
isConcatSpreadable Menunjukkan apakah suatu objek harus diratakan ke elemen lariknya
iterator Mengembalikan iterator default untuk sebuah objek
match Cocok dengan string
matchAll Mengembalikan iterator yang menghasilkan kecocokan ekspresi reguler dengan string
replace Mengganti substring yang cocok dari sebuah string
search Mengembalikan indeks dalam string yang cocok dengan ekspresi reguler
split Memisahkan string di indeks yang cocok dengan ekspresi reguler
species Membuat objek turunan
toPrimitive Mengonversi objek menjadi nilai primitif
toStringTag Memberikan deskripsi default suatu objek
description Mengembalikan string yang berisi deskripsi simbol

Contoh: Contoh Properti 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 yang menarik...