Size: a a a

JavaScript Developers

2019 November 11

α

αμαν in JavaScript Developers
Arthur Lobanov
народ подскажите, не пойму, где на практике используется Map/weakMap и Set/weakSet?
там, где нужные именно такие структуры данных
на деле же такие юзкейсы часто можно закостылить при помощи старых инструментов, т.е. объект вместо Map для доступа по уникальному ключу
источник

α

αμαν in JavaScript Developers
но, кроме искаженной ментальной модели, такие костыли имеют эдж кейсы
например, на порядок ключей в объекте полагаться не ок (вроде он предсказуем, но как минимум, не тривиален)
а те же Set/Map гарантируют этот порядок
источник

α

αμαν in JavaScript Developers
хороший доклад про то, почему важно правильно использовать типы данных и др. инструменты https://www.youtube.com/watch?v=vkUTX1hruF8
источник

α

αμαν in JavaScript Developers
а так, мне на деле WeakMap/WeakSet тоже еще не приходилось использовать
источник

VZ

Vladimir Zhid in JavaScript Developers
Arthur Lobanov
народ подскажите, не пойму, где на практике используется Map/weakMap и Set/weakSet?
Аналогично, юзаю только Set.. но вполне представляю случай использования Мапов, когда тебе хочется использовать объект как ключ. Например у нас есть множество классов, а в какой-то другой структуре мы хотим считать сколько экземпляров  того или иного класса у нас было создано.
{
[ClassA]: 5,
[ClassB]: 6
}

Почему не хранить это в самом объекте класса(фунция-конструктор).. ну всякое бывает..

*Слабые множества/мапы* это уже сложнее..  суть в том, что в ходе исполнения нашего кода, создается множество различных объектов, под них выделяется память, но что делать, если нам объект уже не нужен? С ненужными объектами разбирается сборщик мусора...

Теперь представим что у нас есть мапа в которую мы что-то складываем, ключами являются объекты, теперь объект так же являющийся ключем стал бесполезен. Ссылок на него нет, но сборщик в обычной ситуации не сможет его удалить из памяти по причине того что на него есть сильная ссылка из мапы. Проблему решают эти структуры с слабыми ссылками, если на объект имеется только одна ссылка из такой мапы он будет удален сборщиком.
источник

VZ

Vladimir Zhid in JavaScript Developers
Если погуглить то вот кейс использования https://habr.com/en/post/257305/ (как по мне странный)
источник
2019 November 14

V

Valik in JavaScript Developers
looking for a javascript developer
источник

KS

Kutman Soronbaev in JavaScript Developers
loading ? "Zagruzka" :  tvoyarazmetka
источник

VZ

Vladimir Zhid in JavaScript Developers
А сам что? Лень подумать/почитать/найти пример?
источник

VZ

Vladimir Zhid in JavaScript Developers
Ну так изучай) Просто с такими вопросами обращаться в чат.. знаешь ли..
источник

KS

Kutman Soronbaev in JavaScript Developers
Vladimir Zhid
Ну так изучай) Просто с такими вопросами обращаться в чат.. знаешь ли..
Да нормально не все люди одинаковые)
источник

A

Ahmed in JavaScript Developers
Kutman Soronbaev
Да нормально не все люди одинаковые)
Нифига это не нормально)
источник

A

Ahmed in JavaScript Developers
Ahmed
Нифига это не нормально)
вот так лучше
источник

KS

Kutman Soronbaev in JavaScript Developers
Voteban
источник

KS

Kutman Soronbaev in JavaScript Developers
Take lychw)))
источник

DM

Daniel Manasov in JavaScript Developers
источник

АД

Адылбек Джороев in JavaScript Developers
Пока бросай реакт, лучше js чистый практикуй. Настоятельно рекомендую
источник

АД

Адылбек Джороев in JavaScript Developers
источник

АД

Адылбек Джороев in JavaScript Developers
Лучший сайт
источник

АД

Адылбек Джороев in JavaScript Developers
И задачки в codewars.com
источник