JavaScript - Objek Simbol

Hai teman-teman pemula pengembang JavaScript! Hari ini, kita akan mengemban sebuah perjalanan menarik ke dunia simbol JavaScript. Jangan khawatir jika Anda baru dalam programming; saya akan mengarahkan Anda secara langkah demi langkah dalam konsep ini, sama seperti yang saya lakukan untuk ribuan murid dalam tahun-tahun mengajar saya. Mari kita masuk ke dalamnya!

JavaScript - Symbol

Objek Simbol JavaScript

Bayangkan Anda di sebuah pesta masker mewah. Semua orang memakai masker, dan setiap masker itu unik. Dalam dunia JavaScript, simbol adalah seperti masker ini – mereka adalah pengenal unik yang membantu kita membedakan satu hal dari yang lain, bahkan jika mereka terlihat mirip pada pandangan pertama.

Simbol adalah jenis data primitif dalam JavaScript, diperkenalkan dalam ECMAScript 2015 (ES6). Itu berbeda dari jenis primitif lainnya seperti string atau angka karena setiap Simbol dipastikan unik.

Mari kita buat Simbol pertama kita:

const mySymbol = Symbol();
console.log(mySymbol);  // Output: Symbol()

Di sini, kita membuat Simbol dan menyimpannya dalam variabel mySymbol. Ketika kita log ke console, kita melihat Symbol(). Tetapi jangan tergoda – setiap kali Anda membuat Simbol, itu adalah pengenal baru dan unik.

Sintaks

Membuat Simbol adalah mudah. Anda bisa melakukannya dalam dua cara:

  1. Tanpa deskripsi:

    const sym1 = Symbol();
  2. Dengan deskripsi:

    const sym2 = Symbol('My description');

Deskripsi itu opsional dan utama digunakan untuk tujuan debugging. Itu tidak mempengaruhi keunikan Simbol.

Ini adalah fakta menarik: Anda tidak bisa menggunakan kata kunci new dengan Simbol. Jika Anda mencoba new Symbol(), JavaScript akan melempar kesalahan. Itu seperti mencoba meniru masker unik di pesta masker kita – itu hanya tidak bisa!

Properti Simbol

Simbol memiliki beberapa properti menarik. Mari kita jelajahi mereka:

Symbol.length

console.log(Symbol.length);  // Output: 0

Ini selalu mengembalikan 0. Itu seperti meminta berapa orang memakai masker unik tertentu di pesta kita – selalu hanya ada satu!

Symbol.prototype

Ini adalah prototype untuk kontruktur Simbol. Itu agak lanjut, jadi kita simpan itu untuk hari lain.

Metode Simbol

Simbol datang dengan beberapa metode yang praktis. Mari kita lihat beberapa:

Metode Deskripsi
Symbol.for(key) Mencari simbol yang ada dengan kunci yang diberikan dan mengembalikannya jika ditemukan. Jika tidak ditemukan, simbol baru dibuat dan dikembalikan.
Symbol.keyFor(sym) Mengambil kunci simbol bersama dari register simbol global untuk simbol yang diberikan.
toString() Mengembalikan representasi string dari simbol.

Mari kita lihat ini dalam aksi:

const globalSymbol = Symbol.for('myGlobalSymbol');
console.log(Symbol.keyFor(globalSymbol));  // Output: "myGlobalSymbol"

const localSymbol = Symbol('myLocalSymbol');
console.log(Symbol.keyFor(localSymbol));  // Output: undefined

console.log(localSymbol.toString());  // Output: "Symbol(myLocalSymbol)"

Dalam contoh ini, globalSymbol adalah seperti masker yang terdaftar di pintu masuk pesta kita. Siapa saja bisa meminta itu dengan nama. localSymbol, dari lainnya, adalah seperti masker Anda buat sendiri – itu unik untuk Anda, dan tidak ada yang lain tahu tentangnya.

Contoh

Mari kita lihat beberapa contoh penggunaan Simbol:

Contoh 1: Menggunakan Simbol sebagai kunci properti unik

const NAME = Symbol('name');
const AGE = Symbol('age');

const person = {
[NAME]: 'Alice',
[AGE]: 30
};

console.log(person[NAME]);  // Output: "Alice"
console.log(person[AGE]);   // Output: 30

Dalam contoh ini, kita menggunakan Simbol sebagai kunci dalam objek. Ini memastikan bahwa properti ini tidak akan bentrok dengan properti lain, bahkan jika mereka memiliki nama yang sama.

Contoh 2: Simbol dalam loop for...in

const VISIBLE = Symbol('visible');
const HIDDEN = Symbol('hidden');

const obj = {
[VISIBLE]: 'This is visible',
[HIDDEN]: 'This is hidden',
normalProperty: 'This is normal'
};

for (let prop in obj) {
console.log(prop);  // Output: "normalProperty"
}

Perhatikan bagaimana properti Simbol tidak termasuk dalam loop for...in. Itu seperti mereka memakai mantel tak terlihat di pesta masker kita!

Manfaat penggunaan Simbol

  1. Keunikan: Simbol selalu unik. Hal ini membuat mereka sempurna untuk menambahkan properti ke objek saat Anda ingin pasti bahwa Anda tidak menimpa properti yang sudah ada.

  2. Privasi: Properti yang diberi kunci oleh Simbol secara default tidak dapat dienumerasi. Ini berarti mereka tidak muncul dalam loop for...in atau Object.keys().

  3. Bebas benturan: Saat bekerja dengan basis kode besar atau pustaka pihak ketiga, Simbol membantu mencegah benturan nama.

  4. Perilaku khusus: Beberapa Simbol bawaan memungkinkan Anda mengcustom perilaku objek. Misalnya, Symbol.iterator memungkinkan Anda menentukan bagaimana objek harus diiterasi.

Dalam kesimpulan, Simbol adalah seperti salam rahasia di dunia JavaScript. Mereka menyediakan cara untuk membuat pengenal unik yang bisa digunakan dalam berbagai cara untuk meningkatkan fungsionalitas dan pemeliharaan kode Anda.

Ingat, sama seperti setiap masker di pesta masker kita itu unik dan khusus, demikian juga Simbol di JavaScript. Mereka mungkin terlihat mistis pada awalnya, tapi dengan latihan, Anda akan menemukan mereka sebagai alat kuat dalam peralatan programming Anda.

Tetap coding, tetap belajar, dan terutama, bersenang-senang dalam perjalanan JavaScript Anda!

Credits: Image by storyset