WeakSet & WeakMap Kya Hote Hai – What are WeakSet & WeakMap In JavaScript

WeakSet Kya hota hai ?

JavaScript mein WeakSet ek special type ka collection object hota hai jo sirf objects ko hi store karta hai, primitives (jaise string, number) nahi. Iska naam “weak” isliye hai kyunki ismein store kiye gaye objects garbage collected ho sakte hain agar unka kahin aur reference nahi ho. Ye memory efficient hota hai.

WeakSet mein koi order nahi hota aur na hi ismein duplicate values allowed hoti hain. Ye methods provide karta hai jaise add(), delete(), aur has() — lekin ismein size property ya iteration (loop) ka support nahi hota.

Ye un situations mein useful hai jahan aapko kisi object ke existence ko track karna ho bina usko strongly reference kiye, jaise temporary storage ya private data tracking ke liye.

Key Points :

  • Sirf objects hi store ho sakte hain. (Primitive values jaise string, number allowed nahi hote.)
  • Ismein duplicates allow nahi hote.
  • WeakSet mein items iterate nahi kiye ja sakte. (no for…of, no forEach)
  • Garbage Collection friendly hota hai – memory efficient!

Syntax :

let ws = new WeakSet();
let obj1 = { name: "Amit" };
let obj2 = { name: "Sita" };

ws.add(obj1);
ws.add(obj2);
ws.has(obj1); // true
ws.delete(obj2); // true

Example :

let weakSet = new WeakSet();

let student = {name: "Rahul"};
weakSet.add(student);

console.log(weakSet.has(student)); // true

student = null; 
// ab object ka aur koi reference nahi hai
// Garbage collector memory free kar dega jab zarurat hogi

WeakMap Kya hota hai ?

WeakMap JavaScript ka ek built-in object hai jo key-value pairs store karta hai, jahan keys sirf objects ho sakte hain, primitive types (jaise strings ya numbers) nahi.

Iska sabse bada feature yeh hai ki keys “weakly held” hoti hain – matlab agar koi key object memory se hat jaye (yaani uska reference kahi nahi bacha), to WeakMap us entry ko automatically garbage collect kar deta hai.

WeakMap iterable nahi hota – na hi aap usme forEach, keys() ya values() use kar sakte ho. Yeh mainly tab useful hota hai jab aapko object-specific data chhupakar rakhna ho bina memory leak ke risk ke.

Key Points:

  • Keys sirf objects ho sakte hain.
  • Values kuch bhi ho sakti hain.
  • Keys ko weakly hold karta hai – agar key ka aur koi reference nahi bacha, to Garbage Collector us object ko hata sakta hai.
  • Iteration possible nahi hai (no for…of, no keys(), values() etc.)
  • Security aur memory-sensitive data ke liye useful hai.

Syntax :

let wm = new WeakMap();

let user = {name: "Priya"};
wm.set(user, "User Info");

console.log(wm.get(user)); // "User Info"
wm.delete(user);

Example :

let weakMap = new WeakMap();

let person = { name: "Rohit" };
weakMap.set(person, "Secret Data");

console.log(weakMap.get(person)); // "Secret Data"

person = null;
// Garbage collector yeh "person" aur uska data hata sakta hai agar koi aur reference nahi bacha.

WeakSet vs WeakMap :

Feature WeakSet WeakMap
Store kya karta hai? Sirf objects (no values) Object keys with any values
Duplicate allow? No duplicates Keys are unique
Keys/Values Sirf objects (as values) Object as key, value kuch bhi
Iteration allowed? Not allowed Not allowed
Garbage Collection Supported Supported
Use-case Object existence track karna Private data store karna

Conclusion :

WeakSet use karo jab tumhe sirf object ki presence track karni ho, bina us object ko strong memory reference diye.

WeakMap use karo jab tumhe kisi object ke saath secret ya private data store karna ho, bina memory leak ka risk liye.

Yeh dono cheeze memory efficient hoti hain, aur jab kisi object ka reference chhoot jaata hai, to JavaScript automatically memory clear kar deti hai.

Quiz: Test Your Knowledge on WeakSet & WeakMap in JavaScript

Bonus: Practical Application!

Aaj hi JavaScript me WeakSet aur WeakMap ka upayog karke dekhein!

WeakSet aur WeakMap ko achhi tarah samajhne ke liye unki khas properties jaise ki memory management, keys ka behavior, aur garbage collection ke concepts ka istemal karein. Yeh objects especially tab useful hote hain jab aapko lightweight aur secure data structure ki zarurat ho jo automatic memory cleanup support karta ho.

Leave a Reply