tgindex

Javascript Pro

описание

Канал для начинающих JavaScript разработчиков. Если вы приступаете к изучению JS - этот канал для вас. Админ: @anothertechrock

2 515
подписчиков
Охват к подписчикам
17,5%
ERR
Реакции к просмотрам
0,18%
20 на 25 постов
Пересылки к просмотрам
0,34%
38
Постов в день
0,6
всего 26

Где отзываются чаще

доля реакций к просмотрам
  • 12 авг.Frontend-разработчик Remote · Москва 🏢 VK (MAX)1,35%
  • 4 авг.🔴 Тестовое собеседование с ТимЛидом Frontend-разработки в этот четверг 6 августа(в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Frontend-разработчика. Как это будет: 📂 Алексей Романов, Teamlead в Underhood.dev с опытом 6+ лет, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Алексей будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Алексею Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Frontend-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_front_bot Реклама. О рекламодателе.1,18%
  • 8 мар. 2025 г.👩‍💻 Реализация кнопки с таймером блокировки Создайте кнопку, которая становится недоступной (disabled) на 5 секунд после каждого нажатия. Отображайте обратный отсчёт времени на кнопке, чтобы пользователь видел, когда её можно будет нажать снова. Ожидаемое поведение: • При нажатии на кнопку она становится недоступной. • На кнопке отображается обратный отсчёт времени: 5... 4... 3.... • Через 5 секунд кнопка снова становится активной и текст возвращается в исходное состояние. Решение задачи🔽 <button id="timer-button">Нажми меня</button> #timer-button { padding: 10px 20px; font-size: 16px; cursor: pointer; } #timer-button:disabled { background-color: #ccc; cursor: not-allowed; } const button = document.getElementById('timer-button'); button.addEventListener('click', () => { let countdown = 5; // Деактивируем кнопку и запускаем таймер button.disabled = true; const interval = setInterval(() => { button.textContent = `Ждите... ${countdown}`; countdown--; if (countdown < 0) { clearInterval(interval); button.disabled = false; button.textContent = 'Нажми меня'; } }, 1000); });0,42%
  • 22 июл.Frontend developer Hybrid · г Москва 🏢 Сбер0,38%
  • 6 авг.Frontend Developer (Vue 3/JavaScript), World of Warships Franchise Mid · Hybrid · Belgrade0,27%
  • 14 июл.Middle Frontend Developer (Vue) [GARNET, МТС Веб Сервисы] Mid · Hybrid · Москва 🏢 МТС0,24%
  • 6 авг.🔥 Работа PM - это канал с вакансиями для Project и Product менеджеров. 🚩Контент канала: 6️⃣ Вакансии для начинающих PM 2️⃣ Вакансии с возможностью связаться с HR в телеграм 3️⃣ Подборки вакансий за неделю 🔵Подписывайтесь и ищите работу у нас: @projectmanagersjob0,23%
  • 13 июл.Frontend-разработчик (JavaScript) 💰 ₽250 000 – 300 000 Mid · Remote · Москва 🏢 Hireway0,22%
  • 17 июн.без подписи0,20%
  • 21:43Fullstack developer (Node.js / Next.js / React./ Python) Mid · Москва 🏢 Вкусно - и точка0,00%
  • 15 авг.Младший Frontend / Backend-разработчик Junior · Москва 🏢 Changellenge >>0,00%
  • 15 авг.Node.normalize(): восстановление нормализованной формы текстовых узлов в DOM! После операций с Text, Range и точечной модификации DOM содержимое элемента может оказаться фрагментировано на несколько соседних текстовых узлов. const container = document.createElement('div'); const text = document.createTextNode('Hello'); container.append(text); const tail = text.splitText(2); console.log([...container.childNodes].map(node => node.data)); // ['He', 'llo'] Для рендеринга это обычно не имеет значения: console.log(container.textContent); // Hello Но для кода, который анализирует структуру дерева через childNodes, firstChild, nextSibling или хранит ссылки на конкретные Text-узлы, такая фрагментация уже существенна. Метод Node.normalize() приводит всё поддерево узла к нормализованной форме: container.normalize(); console.log(container.childNodes.length); // 1 console.log(container.firstChild.data); // Hello Нормализация выполняется рекурсивно и гарантирует, что в обработанном поддереве: не останется пустых текстовых узлов; не останется соседних текстовых узлов без разделяющего их элемента, комментария или другого типа узла. При объединении данные последующих Text-узлов добавляются к первому узлу группы, а сами последующие узлы удаляются из дерева. console.log(tail.parentNode); // null Сохранённая ссылка tail при этом не становится невалидной: объект продолжает существовать, но больше не является частью DOM-дерева. Важно и другое: normalize() не объединяет весь текст элемента в один узел, если между текстовыми узлами находятся другие узлы. <p>Hello <strong>DOM</strong>!</p> Здесь текст до и после <strong> останется в разных Text-узлах и после нормализации. Метод особенно полезен после splitText(), операций с Range и редакторских сценариев, где текстовые узлы регулярно разрезаются и склеиваются: const paragraph = document.createElement('p'); const text = document.createTextNode('Hello world'); paragraph.replaceChildren(text); text.splitText(5); console.log(paragraph.childNodes.length); // 2 paragraph.normalize(); console.log(paragraph.childNodes.length); // 1 🔥 Node.normalize() не меняет текстовое содержимое элемента, но приводит его поддерево к нормализованной форме: без пустых и соседних текстовых узлов. Это полезно перед обходом DOM, сериализацией, сравнением структуры или выполнением алгоритмов, которые рассчитывают на предсказуемую организацию Text-узлов.0,00%