BOILERPLATE [ˈbɔɪləpleɪt] (бойлэплэйт)
Шаблон, шаблонный
🇬🇧 These are the boilerplate parts of the program.
🇷🇺Это шаблонные части программы.
@EnglishScript
Шаблон, шаблонный
🇬🇧 These are the boilerplate parts of the program.
🇷🇺
@EnglishScript
This media is not supported in your browser
VIEW IN TELEGRAM
💾 Colorful Mobile Navigation Bar – меню, которое меняет цвет фона страницы и элементов иконки. Для поиска появляется поле ввода.
Сайтодел | #сниппет #css
Сайтодел | #сниппет #css
This media is not supported in your browser
VIEW IN TELEGRAM
😁 Что нас ждет в будущем...
С добрым утром! ☕️
С добрым утром! ☕️
This media is not supported in your browser
VIEW IN TELEGRAM
💰 Python + ИИ + фондовый рынок = интересный open-source проект
PokieTicker — настоящий индекс страха! Инструмент, который помогает понять, почему акции растут или падают, объединяя графики, новости и машинное обучение.
Возможности:
➡️ новости прямо на графике цены;
➡️ AI-анализ причин движения рынка;
➡️ поиск похожих ситуаций из прошлого;
➡️ прогноз на основе новостей и технических индикаторов.
📊 Отличная база для тех, кто хочет изучить анализ рынка, исследовать влияние новостей, работать с настроениями инвесторов или собрать собственный аналитический сервис.
💻 Это инструмент для анализа и исследований, а не гарантия заработка на рынке.
🔗 Сохраняем, проект заслуживает внимания
#python #soft #github
PokieTicker — настоящий индекс страха! Инструмент, который помогает понять, почему акции растут или падают, объединяя графики, новости и машинное обучение.
Возможности:
➡️ новости прямо на графике цены;
➡️ AI-анализ причин движения рынка;
➡️ поиск похожих ситуаций из прошлого;
➡️ прогноз на основе новостей и технических индикаторов.
📊 Отличная база для тех, кто хочет изучить анализ рынка, исследовать влияние новостей, работать с настроениями инвесторов или собрать собственный аналитический сервис.
💻 Это инструмент для анализа и исследований, а не гарантия заработка на рынке.
🔗 Сохраняем, проект заслуживает внимания
#python #soft #github
🎨 Цветовая палитра макета "HaHo Mobile UI Kit"
Сайтодел | #палитра
HEX | RGB #EAEBE5 | rgb(234,235,229)
#FE6A5E | rgb(254,106,94) #455A53 | rgb(69,90,83)
⚠️ Цвет копируется одним кликом!Сайтодел | #палитра
🔥 Онлайн-хакатон с призовым фондом 15 000 000 рублей
Ozon Tech решил провести нетипичный хакатон Робозон — нужно погрузиться в область автоматизации сортировочных процессов.
📅 Регистрация до 11 июля
Задачи на реальных данных е-кома:
📦 моделирование сортировочного центра;
🏗 проектирование сортировщиков для автоматизации процессов;
👁 разработка системы распознавания и обработки товаров (CV).
Что получают участники помимо шанса выиграть деньги:
— нетворк, поддержку экспертов Ozon Tech и возможность поработать с ними в команде;
— билеты на конференцию E-CODE для финалистов;
— апгрейд своих навыков и крутой кейс в портфолио.
👍 Сохраняем, если давно хотели поучаствовать в серьёзном инженерном хакатоне.
Ozon Tech решил провести нетипичный хакатон Робозон — нужно погрузиться в область автоматизации сортировочных процессов.
📅 Регистрация до 11 июля
Задачи на реальных данных е-кома:
📦 моделирование сортировочного центра;
🏗 проектирование сортировщиков для автоматизации процессов;
👁 разработка системы распознавания и обработки товаров (CV).
Что получают участники помимо шанса выиграть деньги:
— нетворк, поддержку экспертов Ozon Tech и возможность поработать с ними в команде;
— билеты на конференцию E-CODE для финалистов;
— апгрейд своих навыков и крутой кейс в портфолио.
👍 Сохраняем, если давно хотели поучаствовать в серьёзном инженерном хакатоне.
AI-инструменты можно любить и ненавидеть, но работать без них в IT уже практически невозможно 🤩
Коллеги из AvitoTech 11 июля зовут в их офис на Лесной на AI Hardcore Day. Приглашают тех, кто каждый день сталкивается с AI в работе и даже пишет своих AI-агентов. Обещают доклады и нетворкинг-сессию на террасе после — и всё это без записи.
💫 Среди тем:
— Spec-Driven Development: теория, инструменты, практика.
— Разработка и тестирование MCP для внутренних агентных систем аналитики.
— Выпрямляем руки агентов: как сделать MCP удобными и действительно полезными.
— Атаки на GenAI-агентов: OWASP на практике.
➡ Регистрация тут!
Коллеги из AvitoTech 11 июля зовут в их офис на Лесной на AI Hardcore Day. Приглашают тех, кто каждый день сталкивается с AI в работе и даже пишет своих AI-агентов. Обещают доклады и нетворкинг-сессию на террасе после — и всё это без записи.
💫 Среди тем:
— Spec-Driven Development: теория, инструменты, практика.
— Разработка и тестирование MCP для внутренних агентных систем аналитики.
— Выпрямляем руки агентов: как сделать MCP удобными и действительно полезными.
— Атаки на GenAI-агентов: OWASP на практике.
➡ Регистрация тут!
Маленькая UI-деталь, которая влияет на восприятие интерфейса!
Часто бывает: кликаешь по
Интерфейс сразу выглядит менее качественным.
.button {
user-select: none;
}
Теперь текст внутри элемента нельзя случайно выделить мышью или тапом.
Это особенно полезно для интерактивных элементов.
button,
.tab,
.badge {
user-select: none;
}
Но важно не применять это глобально.
body {
user-select: none;
}
Так можно сломать UX: пользователь не сможет копировать текст.
Используй только там, где выделение реально не нужно.
button,
.control,
.action
Это маленькая деталь, но она заметно улучшает UI.
🔥
📣 Code Ready | #совет
Часто бывает: кликаешь по
button, tab, dropdown-item или card-action и выделяется текст.Интерфейс сразу выглядит менее качественным.
.button {
user-select: none;
}
Теперь текст внутри элемента нельзя случайно выделить мышью или тапом.
Это особенно полезно для интерактивных элементов.
button,
.tab,
.badge {
user-select: none;
}
Но важно не применять это глобально.
body {
user-select: none;
}
Так можно сломать UX: пользователь не сможет копировать текст.
Используй только там, где выделение реально не нужно.
button,
.control,
.action
Это маленькая деталь, но она заметно улучшает UI.
🔥
user-select: none — простой способ сделать интерфейс визуально чище и приятнее.📣 Code Ready | #совет
📰 <b>RSS Daily Digest</b> | 1 июля
<b>Tech</b>
• Nintendo подняла зарплату сотрудникам на 10%
• Asahi Linux 7.1 Progress Report
• Godot больше не принимает AI-код (интересно для моего канала!)
• ArXiv's Next Chapter
• Claude Sonnet 5 вышел
• Claude Code помечает запросы steganographically
<b>Новости</b>
• "Отец интернета" наконец уходит на пенсию
• Trump снял ограничения с моделей Anthropic
• Wayve: $85M employee tender offer при оценке $8.5B
• Nvidia-конкурент Etched: $5B оценка, $1B продаж
• Realta Fusion: генерация электричества напрямую из реакции (впервые!)
• Google представила Nano Banana 2 Lite
<b>WebDev</b>
• CSS-Tricks: Gap Decorations, random(), field sizing
<a href="https://news.ycombinator.com/rss">Hacker News</a> • <a href="https://techcrunch.com/feed/">TechCrunch</a> • <a href="https://css-tricks.com/feed/">CSS-Tricks</a>
<b>Tech</b>
• Nintendo подняла зарплату сотрудникам на 10%
• Asahi Linux 7.1 Progress Report
• Godot больше не принимает AI-код (интересно для моего канала!)
• ArXiv's Next Chapter
• Claude Sonnet 5 вышел
• Claude Code помечает запросы steganographically
<b>Новости</b>
• "Отец интернета" наконец уходит на пенсию
• Trump снял ограничения с моделей Anthropic
• Wayve: $85M employee tender offer при оценке $8.5B
• Nvidia-конкурент Etched: $5B оценка, $1B продаж
• Realta Fusion: генерация электричества напрямую из реакции (впервые!)
• Google представила Nano Banana 2 Lite
<b>WebDev</b>
• CSS-Tricks: Gap Decorations, random(), field sizing
<a href="https://news.ycombinator.com/rss">Hacker News</a> • <a href="https://techcrunch.com/feed/">TechCrunch</a> • <a href="https://css-tricks.com/feed/">CSS-Tricks</a>
🖥 HaHo Mobile UI Kit – дизайн-система для мобильных приложений, которая включает самые разные элементы интерфейса: формы, календари, инфографику, галереи, чаты и тд.
Сайтодел | #макет #figma
Сайтодел | #макет #figma
💻 HackTheBox Walkthrough на русском языке, огромная практическая подборка прохождения машин от RalfHacker с Хабра
➡️ Hack The Box. Уровень Easy:
• Прохождение Traceback. Бэкдор, LUA, SSH.
• Прохождение Omni. Ломаем легенький Windows IoT.
• Прохождение Buff. RCE в CMS Gym и в CloudMe.
• Прохождение Tabby. RCE в Tomcat, и повышаем привилегии через LXD.
• Прохождение Blunder. Ломаем Bludit CMS.
• Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc.
• Прохождение Sauna. LDAP, AS-REP Roasting, AutoLogon, DCSync атака.
• Прохождение Nest. NTFS потоки, реверс C# и бродилка по SMB.
• Прохождение Traverxec. RCE в веб-сервере nostromo, техника GTFOBins.
• Прохождение Forest. AS-REP Roasting, атаки DCSync и Pass-The-Hash.
• Прохождение Postman. Redis и WebMin.
➡️ Hack The Box. Уровень Medium:
• Прохождение лаборатории Professional Offensive Operations. Пентест Active Directory.
• Прохождение Monteverde. Брут SMB и LPE через Azure Admins.
•...
Перейти на оригинальный пост
➡️ Hack The Box. Уровень Easy:
• Прохождение Traceback. Бэкдор, LUA, SSH.
• Прохождение Omni. Ломаем легенький Windows IoT.
• Прохождение Buff. RCE в CMS Gym и в CloudMe.
• Прохождение Tabby. RCE в Tomcat, и повышаем привилегии через LXD.
• Прохождение Blunder. Ломаем Bludit CMS.
• Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc.
• Прохождение Sauna. LDAP, AS-REP Roasting, AutoLogon, DCSync атака.
• Прохождение Nest. NTFS потоки, реверс C# и бродилка по SMB.
• Прохождение Traverxec. RCE в веб-сервере nostromo, техника GTFOBins.
• Прохождение Forest. AS-REP Roasting, атаки DCSync и Pass-The-Hash.
• Прохождение Postman. Redis и WebMin.
➡️ Hack The Box. Уровень Medium:
• Прохождение лаборатории Professional Offensive Operations. Пентест Active Directory.
• Прохождение Monteverde. Брут SMB и LPE через Azure Admins.
•...
Перейти на оригинальный пост
🐙 JS2Flowchart – библиотека для визуализации JavaScript-кода. Она генерирует блок-схемы, позволяет настроить стиль и показать код на разных уровнях абстракции.
Сайтодел | #репозиторий #github
Сайтодел | #репозиторий #github
🖥 Alien Staff Assets – более 20 PNG-элементов в футуристичном стиле. Шаблоны, изображения и иконки подойдут для веб-приложений развлекательного формата, а также для афиш и баннеров.
Сайтодел | #макет #figma
Сайтодел | #макет #figma
📰 <b>RSS Daily Digest</b> — 2 июля 2026
<b>Tech / Новости</b>
• Indian tech tycoon bets $30M to build AI alternative to Microsoft Office <a href="https://techcrunch.com/2026/07/01/indian-tech-tycoon-bets-30m-to-build-an-ai-alternative-to-microsoft-office/">TC</a>
• Apple planning new iPad Pro и MacBook Pro на начало 2027 <a href="https://techcrunch.com/2026/07/01/apple-is-reportedly-planning-new-ipad-pro-and-macbook-pro-releases-early-next-year/">TC</a>
• Bending Spoons +40% в первый день торгов после IPO на $18B <a href="https://techcrunch.com/2026/07/01/after-18b-ipo-bending-spoons-founder-says-success-comes-from-minimizing-luck/">TC</a>
• Together AI привлекла $800M, оценка $8.3B <a href="https://techcrunch.com/2026/07/01/neocloud-together-ai-raises-800m-leaps-to-8-3b-valuation/">TC</a>
• SpaceX имеет прототип AI-устройства <a href="https://techcrunch.com/2026/07/01/spacex-has-an-ai-device-prototype-and-it-sure-sounds-phone-ish/">TC</a>
• WhatsApp usernames уже создают проблемы с impersonation <a href="https://techcrunch.com/2026/07/01/whatsapp-usernames-are-already-raising-impersonation-red-flags/">TC</a>
<b>Python</b>
• Python Packaging Council — Inaugural Election Dates <a href="https://pyfound.blogspot.com/2026/06/packaging-council-inaugural-election.html">pyfound</a>
• PEP 832: Root Loggers, Django Tasks <a href="https://pycoders.com/issues/741">PyCoder's #741</a>
• Panel Live Server: MCP Server for Instant Python Visualization <a href="https://blog.holoviz.org/posts/panel_live_server/">HoloViz</a>
• Semantic Search Without a Vector Database <a href="https://belderbos.dev/blog/semantic-search-without-a-vector-database/">Belderbos</a>
• Python 3.15.0 beta 3 <a href="https://blog.python.org/2026/06/python-3150-beta-3/">Python Insider</a>
<b>Java</b>
• Spring AI's Dynamic Tool Discovery <a href="https://feeds.feedblitz.com/~/958677014/0/baeldung">Baeldung</a>
• New Features in Java 26 <a href="https://feeds.feedblitz.com/~/958677017/0/baeldung">Baeldung</a>
• Understanding and Avoiding CommitFailedException in Kafka <a href="https://feeds.feedblitz.com/~/958534139/0/baeldung">Baeldung</a>
<b>Webdev</b>
• Gap Decorations, random(), <select> field sizing <a href="https://css-tricks.com/whats-important-14/">CSS-Tricks</a>
• The Shifting Line Between CSS States and JavaScript Events <a href="https://css-tricks.com/css-states-and-javascript-events/">CSS-Tricks</a>
⚠️ Hacker News и LocalLlama недоступны (timeout / 403)
<b>Tech / Новости</b>
• Indian tech tycoon bets $30M to build AI alternative to Microsoft Office <a href="https://techcrunch.com/2026/07/01/indian-tech-tycoon-bets-30m-to-build-an-ai-alternative-to-microsoft-office/">TC</a>
• Apple planning new iPad Pro и MacBook Pro на начало 2027 <a href="https://techcrunch.com/2026/07/01/apple-is-reportedly-planning-new-ipad-pro-and-macbook-pro-releases-early-next-year/">TC</a>
• Bending Spoons +40% в первый день торгов после IPO на $18B <a href="https://techcrunch.com/2026/07/01/after-18b-ipo-bending-spoons-founder-says-success-comes-from-minimizing-luck/">TC</a>
• Together AI привлекла $800M, оценка $8.3B <a href="https://techcrunch.com/2026/07/01/neocloud-together-ai-raises-800m-leaps-to-8-3b-valuation/">TC</a>
• SpaceX имеет прототип AI-устройства <a href="https://techcrunch.com/2026/07/01/spacex-has-an-ai-device-prototype-and-it-sure-sounds-phone-ish/">TC</a>
• WhatsApp usernames уже создают проблемы с impersonation <a href="https://techcrunch.com/2026/07/01/whatsapp-usernames-are-already-raising-impersonation-red-flags/">TC</a>
<b>Python</b>
• Python Packaging Council — Inaugural Election Dates <a href="https://pyfound.blogspot.com/2026/06/packaging-council-inaugural-election.html">pyfound</a>
• PEP 832: Root Loggers, Django Tasks <a href="https://pycoders.com/issues/741">PyCoder's #741</a>
• Panel Live Server: MCP Server for Instant Python Visualization <a href="https://blog.holoviz.org/posts/panel_live_server/">HoloViz</a>
• Semantic Search Without a Vector Database <a href="https://belderbos.dev/blog/semantic-search-without-a-vector-database/">Belderbos</a>
• Python 3.15.0 beta 3 <a href="https://blog.python.org/2026/06/python-3150-beta-3/">Python Insider</a>
<b>Java</b>
• Spring AI's Dynamic Tool Discovery <a href="https://feeds.feedblitz.com/~/958677014/0/baeldung">Baeldung</a>
• New Features in Java 26 <a href="https://feeds.feedblitz.com/~/958677017/0/baeldung">Baeldung</a>
• Understanding and Avoiding CommitFailedException in Kafka <a href="https://feeds.feedblitz.com/~/958534139/0/baeldung">Baeldung</a>
<b>Webdev</b>
• Gap Decorations, random(), <select> field sizing <a href="https://css-tricks.com/whats-important-14/">CSS-Tricks</a>
• The Shifting Line Between CSS States and JavaScript Events <a href="https://css-tricks.com/css-states-and-javascript-events/">CSS-Tricks</a>
⚠️ Hacker News и LocalLlama недоступны (timeout / 403)
TechCrunch
Indian tech tycoon bets $30M of his own money to build AI alternative to Microsoft Office | TechCrunch
Neo is Bhavin Turakhia’s fifth venture and his latest involving enterprise software. This time he's taking on Microsoft Office and Google Apps with AI.
Готово! RSS дайджест за 2 июля опубликован в канал @myselfcoding.
50Items из 6 категорий:
• Tech/Новости — 11 Items (включая Bending Spoons IPO, Together AI $800M, Apple/SpaceX)
• Python — 11 Items (Python 3.15 beta 3, Panel Live Server, PEP 832)
• Java — 9 Items (Spring AI, Java 26, Kafka)
• Webdev — 11 Items (CSS-Tricks)
Hacker News и LocalLlama недоступны (timeout/403).
50Items из 6 категорий:
• Tech/Новости — 11 Items (включая Bending Spoons IPO, Together AI $800M, Apple/SpaceX)
• Python — 11 Items (Python 3.15 beta 3, Panel Live Server, PEP 832)
• Java — 9 Items (Spring AI, Java 26, Kafka)
• Webdev — 11 Items (CSS-Tricks)
Hacker News и LocalLlama недоступны (timeout/403).
This media is not supported in your browser
VIEW IN TELEGRAM
😍 dreamDevTeamx — большая шпаргалка для фронтенд разработчиков!
Годный репозиторий, в котором собрано много практической информации по разным направлениям разработки. Это база знаний, к которой удобно возвращаться во время обучения, работы или подготовки к собеседованиям. Материал ориентирован именно на практику.
📣 Code Ready | #репозиторий
Годный репозиторий, в котором собрано много практической информации по разным направлениям разработки. Это база знаний, к которой удобно возвращаться во время обучения, работы или подготовки к собеседованиям. Материал ориентирован именно на практику.
Оставляю ссылочку: GitHub 📱
📣 Code Ready | #репозиторий
Сидеть и работать в корпорации — страшно, жизнь-то мимо проходит. Уходить строить бизнес — страшно, а вдруг прогорит. Один из вариантов — разрабатывать свой пет-проект по вечерам. Многие успешные компании, например, Twitter, создавались именно так. Это не значит, что ваш проект обязательно заработает миллиарды, но заработать больше, чем в найме, и получить ценный опыт — вполне реально.
Перед началом разработки появляется множество вопросов, например:
• Как выбрать идею для пет-проекта?
• Что нужно знать про маркетинг
• Как запуститься и довести до первых продаж не имея бюджета на рекламу?
В телеграм-канале «Твой пет проект», Михаил Табунов делится своим опытом с разработчиками и менеджерами.
Он рассказывает, где искать идею для нового проекта, что нужно знать о маркетинге, как запустить стартап и привлечь первых 10 клиентов, а также о многих других важных вещах.
Подписывайтесь на «Твой пет проект», получайте пользу от практиков рынка!
https://t.me/+8Frwa03ciVlhNTky
Перед началом разработки появляется множество вопросов, например:
• Как выбрать идею для пет-проекта?
• Что нужно знать про маркетинг
• Как запуститься и довести до первых продаж не имея бюджета на рекламу?
В телеграм-канале «Твой пет проект», Михаил Табунов делится своим опытом с разработчиками и менеджерами.
Он рассказывает, где искать идею для нового проекта, что нужно знать о маркетинге, как запустить стартап и привлечь первых 10 клиентов, а также о многих других важных вещах.
Подписывайтесь на «Твой пет проект», получайте пользу от практиков рынка!
https://t.me/+8Frwa03ciVlhNTky
Telegram
Твой пет проект
Канал про то, как создать свой маленький свечной заводик
Пишу про:
- Запуски и как сделать первые 10 продаж
- Прожарка идей
- Кейсы роста и ведения проекта параллельно с работой
Автор - Михаил Табунов - @bossofyourboss
Связь @to_baza_education
Пишу про:
- Запуски и как сделать первые 10 продаж
- Прожарка идей
- Кейсы роста и ведения проекта параллельно с работой
Автор - Михаил Табунов - @bossofyourboss
Связь @to_baza_education
🐙 Expo – платформа для создания и тестирования приложений на React. Содержит готовые инструменты и сервисы для работы с iOS, Android и веб-приложениями.
Сайтодел | #репозиторий #github
Сайтодел | #репозиторий #github
Почему querySelectorAll() не обновляется автоматически?
Иногда кажется, что результат
const items = document.querySelectorAll('.item');
console.log(items.length); // 3
document.body.insertAdjacentHTML(
'beforeend',
''
);
console.log(items.length); // всё ещё 3
После этого
Если нужен актуальный список — придётся заново выполнить запрос:
let items = document.querySelectorAll('.item');
document.body.insertAdjacentHTML(
'beforeend',
''
);
items = document.querySelectorAll('.item');
console.log(items.length); // 4
Из-за этого иногда появляются простые, но неприятные ошибки в динамическом UI. Например, когда элементы добавляются позже, а список уже был сохранён заранее:
const buttons = document.querySelectorAll('.btn');
addNewButton();
// новый элемент сюда уже не попадёт
buttons.forEach(bindHandler);
Человек ожидает, что обработчик навесится на всё, но фактически работает только с тем, что существовало в момент запроса.
Есть и другой вариант поведения — живые коллекции. Например:
const items = document.getElementsByClassName('item');
console.log(items.length); // 3
document.body.insertAdjacentHTML(
'beforeend',
''
);
console.log(items.length); // 4
Такие коллекции действительно меняются вместе с DOM. К ним относятся
При этом NodeList, который возвращает
const items = document.querySelectorAll('.item');
items.forEach(item => {
console.log(item);
});
Но это всё ещё не массив:
Array.isArray(items); // false
Если нужны методы массива — его нужно явно преобразовать:
const items = [...document.querySelectorAll('.item')];
🔥 На практике
📣 Code Ready | #практика
Иногда кажется, что результат
querySelectorAll() как-то привязан к DOM и должен сам обновляться при изменениях на странице. Но это не так — он возвращает фиксированный снимок на момент вызова.const items = document.querySelectorAll('.item');
console.log(items.length); // 3
document.body.insertAdjacentHTML(
'beforeend',
''
);
console.log(items.length); // всё ещё 3
После этого
items никак не пересчитывается. Это просто сохранённый результат поиска, а не живая коллекция.Если нужен актуальный список — придётся заново выполнить запрос:
let items = document.querySelectorAll('.item');
document.body.insertAdjacentHTML(
'beforeend',
''
);
items = document.querySelectorAll('.item');
console.log(items.length); // 4
Из-за этого иногда появляются простые, но неприятные ошибки в динамическом UI. Например, когда элементы добавляются позже, а список уже был сохранён заранее:
const buttons = document.querySelectorAll('.btn');
addNewButton();
// новый элемент сюда уже не попадёт
buttons.forEach(bindHandler);
Человек ожидает, что обработчик навесится на всё, но фактически работает только с тем, что существовало в момент запроса.
Есть и другой вариант поведения — живые коллекции. Например:
const items = document.getElementsByClassName('item');
console.log(items.length); // 3
document.body.insertAdjacentHTML(
'beforeend',
''
);
console.log(items.length); // 4
Такие коллекции действительно меняются вместе с DOM. К ним относятся
getElementsByClassName, getElementsByTagName и element.children. Разница простая: querySelectorAll даёт снимок, а getElementsBy* держат связь с DOM.При этом NodeList, который возвращает
querySelectorAll, можно спокойно перебирать как массив:const items = document.querySelectorAll('.item');
items.forEach(item => {
console.log(item);
});
Но это всё ещё не массив:
Array.isArray(items); // false
Если нужны методы массива — его нужно явно преобразовать:
const items = [...document.querySelectorAll('.item')];
🔥 На практике
querySelectorAll используют чаще именно из-за предсказуемости. Он не меняется сам по себе, и это как раз удобно в реальных приложениях. Для динамики обычно либо делают повторный запрос, либо уходят в делегирование событий.📣 Code Ready | #практика