میدونم set یه کالکشن مقادیر هست و weak set هم شبیه set هست فقط تایپش ابجکته ولی نفهمیدم دقیقا کجاها استفاده میشه.
سلام وقت بخیر .
در مورد set و weakSet :
در واقع weakSet نوعی از setها هست که فقط در اون object نگه داری میشه و تفاوت مهمش اینه که اگه به objectهای درونش در جای دیگه از از برنامه اشاره نشده باشه اون object میتونه توسط garbage collector حذف بشه . (به بیان سادهتر روی objectهای خودش کنترل ضعیفی داره و به همین دلیل در هر لحظه از موجود بودن یا نبودن اونها اطلاعی نداریم)
و مورد استفاده set و weakSet هم دقیقا جاهایی هست که نیاز به collectionهای unique داریم . البته weakSet از لحاظ performance هم مزیت هایی داره نسبت به array و set .
در مورد map و weakMap هم دقیقا همینطور هست . یعنی weakMap نوعی map هست که keyها باید object باشند و همچنین key/valueهای اون اگر در جای دیگه از برنامه به key اونها اشاره نشده باشه میتونه توسط garbage collector حذف بشه .