Можешь объяснить, как работают JavaScript генераторы, включая синтаксис, роль ключевого слова `yield` и их практическое применение? — ДейлиПреп