InterviewHubPRO
Section Overview
Q492

Question 492 of 521

Part 8: Modern JavaScript APIs, WeakRef, Proxy & Performance (464 - 521)

94%
JavaScript Internals (521 Qs)•Part 8: Modern JavaScript APIs, WeakRef, Proxy & Performance (464 - 521)

What are Symbols and what are their use cases?

Symbol is a primitive data type introduced in ES6 that creates unique and immutable values. Each Symbol value is guaranteed to be unique, even if they have the same description.

javascript
 const sym1 = Symbol('description');
 const sym2 = Symbol('description');
 console.log(sym1 === sym2); // false

Common use cases:

  1. Creating unique property keys:
javascript
    const id = Symbol('id');
    const obj = {
      [id]: 12345,
      name: 'John'
    };
    console.log(obj[id]); // 12345
  1. Preventing property name collisions:
javascript
    const myLib = {
      [Symbol('internal')]: 'private data',
      publicMethod() {}
    };
  1. Implementing well-known symbols (Symbol.iterator, Symbol.toStringTag, etc.):
javascript
    class Collection {
      *[Symbol.iterator]() {
        yield 1;
        yield 2;
      }
    }

Note: Symbol properties are not enumerable in for...in loops or Object.keys(), making them useful for metadata and internal object properties.