This media is not supported in your browser
VIEW IN TELEGRAM
Здесь собраны структурированные документации по JS и смежным технологиям, ориентироваться в темах быстро и удобно. Можно подтянуть понимание языка: методы массивов, строки, даты, поведение консоли, обработка событий и многое другое. Открываешь документацию, понимаешь механику, ограничения и реальные сценарии использования.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥7🤝7
Быстро приводим значение к boolean — без лишних проверок!
В JS логические значения — это не только
Любое значение в условии считается либо
По умолчанию
Всё остальное —
Если нужно явно получить
Одно
Два
Это часто удобнее и короче, чем
🔥 Поэтому,
📣 Code Ready | #совет
В JS логические значения — это не только
true и false.Любое значение в условии считается либо
truthy, либо falsy.По умолчанию
falsy всего несколько значений:false
0
''
null
undefined
NaN
Всё остальное —
truthy, даже пустые объекты и массивы.Если нужно явно получить
boolean, а не полагаться на неявные приведения, используют оператор логического отрицания.Одно
! инвертирует значение:!0 // true
!1 // false
Два
! подряд делают именно то, что нужно — приводят значение к true или false:!!0 // false
!!1 // true
!!'text' // true
!!null // false
Это часто удобнее и короче, чем
Boolean(value):Boolean(value); // то же самое, но длиннее
!!value — быстрый и наглядный способ получить boolean в коде.Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍12🔥8
Привет! В этом гайде создаём компактный поиск по тексту с подсветкой совпадений и счётчиком вхождений.
Ключевые моменты:
• HTML: структура — textarea, поле ввода запроса и область вывода результата.
• CSS: контейнер, скругления, тень и прокрутка в блоке результата.
• JS: поиск регулярным выражением, подсветка и подсчёт совпадений.
Такой мини-поиск отлично подойдёт для UI-демо, форм, поиска по отзывам или логам, где важно быстро найти фразу, сохранив простой интерфейс.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤10👍8
Map — это удобная структура данных для хранения пар ключ - значение, где ключом может быть что угодно, а порядок элементов сохраняется.
На картинке — часто используемые методы Map: от добавления и получения значений до перебора данных.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤10🤝8
Этот приём создаёт ощущение, что текст в меню не простая статичная надпись, а активная часть интерфейса, где underline становится визуальным индикатором состояния.
Как работает:
• details заменяет необходимость в обработке клика;
• position: relative делает элемент системой координат для underline;
• cubic-bezier управляет «магнитностью» движения;
• glow привязан к underline, а не к элементу целиком, поэтому эффект остаётся аккуратным и предсказуемым.
Так визуальная обратная связь становится структурной, улучшая восприятие интерактивности без лишних зависимостей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22👍9🤝9👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Это не обучающие статьи, а глубокие разборы архитектуры, устройства языка, качества кода и масштабируемых решений. Здесь много про то, как писать код: принципы, ограничения языка, реальные инженерные компромиссы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍8🤝7
Каждый год пишу итоги, не буду отказываться и сейчас)
2025 выдался не прям продуктивным, но достаточно многое поменялось: контент, аудитория и планы.
На 2026 год главная цель это набрать 50000 подписчиков. Поэтому желаю каждому чтобы новый год был еще лучше!
С наступающим!🎄
2025 выдался не прям продуктивным, но достаточно многое поменялось: контент, аудитория и планы.
На 2026 год главная цель это набрать 50000 подписчиков. Поэтому желаю каждому чтобы новый год был еще лучше!
С наступающим!
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥28❤8👍8
Когда вёрстка “плывёт”, удобно временно включить универсальную подсветку границ, чтобы сразу увидеть проблемные блоки и их вложенность.
Вместо того чтобы вручную писать для каждого элемента
border: 1px solid red, используйте CSS-переменную и outline (он не влияет на layout)::root {
--debug: 1px dashed red;
}Теперь включаем дебаг в одну строку для любого элемента:
* {
outline: var(--debug);
}outline не сдвигает элементы, не ломает размеры и не создаёт переполнений, поэтому дебаг абсолютно точный.Хочешь быстро отключить? Просто меняем переменную:
:root {
--debug: none;
}Please open Telegram to view this post
VIEW IN TELEGRAM
❤31👍15🤝8🔥2
Получаем данные случайного пользователя!
Нам обычно нужен первый пользователь:
Достаём поля через деструктуризацию. Для UI:
Когда нужен набор моков — используем
🔥 При массовой загрузке учитывайте
📣 Code Ready | #практика
RandomUser API удобен для фронтенда: один запрос — и есть JSON с реалистичным профилем. В нормальном ответе приходит объект { results: [...] }, где results — массив профилей. Нам обычно нужен первый пользователь:
async function getRandomUser() {
const res = await fetch("https://randomuser.me/api/");
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const { results, error } = await res.json();
if (error) throw new Error(error);
if (!results?.length) throw new Error("No results");
return results[0];
}Достаём поля через деструктуризацию. Для UI:
picture.medium — аватар среднего размера, thumbnail — для списков:getRandomUser().then(({ name, email, location, picture }) => {
const fullName = `${name.first} ${name.last}`;
console.log(`Имя: ${fullName} | Страна: ${location.country}`);
console.log(`Аватар (medium): ${picture.medium} | Email: ${email}`);
}).catch(console.error);Когда нужен набор моков — используем
?results=N. API поддерживает крупные батч-запросы (до 5000 пользователей за один вызов), что эффективнее, чем множество одиночных запросов:async function getRandomUsers(count = 5) {
const res = await fetch(`https://randomuser.me/api/?results=${count}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const { results, error } = await res.json();
if (error) throw new Error(error);
if (!results?.length) throw new Error("No results");
return results;
}
getRandomUsers(3).then(list => console.log(list));rate-limit и размер ответа. Кэшируйте профили, если они нужны повторно в рамках сессии.Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤7🔥6🤝1
В этой статье вы:
• Узнаете, как заменить привычные JavaScript-фичи html/css;
• Реализуете интерактивные элементы (аккордеоны, раскрывающиеся блоки);
• Научитесь строить UI-компоненты вроде автодополнения, модальных окон и popover-меню через современные html-атрибуты;
• Получите примеры, которые позволяют снижать зависимость от JavaScript там, где возможно. 🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🤝8🔥7❤1
Интерфейс кажется живым, когда есть визуальная обратная связь. В этом приёме сделаем проходящий световой блик, который появляется при наведении.
Как работает:
• ::before создаёт отдельный слой блика, который движется по координате;
• linear-gradient формирует мягкий центр света и прозрачные края;
• keyframes sh управляет непрерывным движением без рестарта;
• :hover меняет длительность анимации, но не запускает её заново, поэтому эффект ощущается отзывчивым и плавным;
Это отличный пример того, как можно управлять визуальным откликом интерфейса, делая его выразительным и предсказуемым.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🤝8❤7
This media is not supported in your browser
VIEW IN TELEGRAM
Хочешь быстро понять базу по HTML, CSS, JavaScript, и др. Этот сайт отлично подойдёт как справочник и тренажёр. Материалы разбиты по небольшим блокам с примерами кода, которые можно сразу запустить в браузере, это помогает не просто читать, а реально видеть, как работает код. Идеально, когда нужно понять новую тему или быстро найти ответ на конкретный вопрос.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥8❤7🤝1