Javascript Pro
2.51K subscribers
176 photos
30 videos
146 links
Канал для начинающих JavaScript разработчиков. Если вы приступаете к изучению JS - этот канал для вас.

Админ: @anothertechrock
Download Telegram
Оффер редко приходит сам. Обычно между «без работы» и «оффер получен» стоят десятки откликов, доработок резюме и часов поиска.

Talanto.work помогает пройти этот путь быстрее:
🟠 50 000+ IT-вакансий с разных сайтов

🟠 Telegram-бот с уведомлениями по вашим фильтрам

🟠 Проверка резюме и рекомендации по улучшению

🟠 Проверка соответствия резюме конкретной вакансии

🟠 Генератор персональных сопроводительных писем

Ищите работу не дольше. Ищите эффективнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔴 Тестовое собеседование с ТимЛидом Frontend-разработки в этот четверг

6 августа(в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Frontend-разработчика.

Как это будет:
📂 Алексей Романов, Teamlead в Underhood.dev с опытом 6+ лет, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Алексей будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Алексею

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Frontend-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_front_bot

Реклама.
О рекламодателе.
2👍1👎1🙏1
🔥 Работа PM - это канал с вакансиями для Project и Product менеджеров.

🚩Контент канала:
6️⃣ Вакансии для начинающих PM
2️⃣ Вакансии с возможностью связаться с HR в телеграм
3️⃣ Подборки вакансий за неделю

🔵Подписывайтесь и ищите работу у нас: @projectmanagersjob
Please open Telegram to view this post
VIEW IN TELEGRAM
1
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-узлов.
Please open Telegram to view this post
VIEW IN TELEGRAM