Вопрос проверяет понимание порядка выполнения обработчиков событий в JavaScript, включая фазы всплытия и перехвата, что важно для отладки и управления событиями.
В JavaScript события проходят три фазы: перехват (capturing), цель (target) и всплытие (bubbling). Это стандартная модель DOM Events, которая определяет, в каком порядке вызываются обработчики, когда происходит событие на вложенном элементе.
true в addEventListener, срабатывают на этой фазе.// HTML: <div id="parent"><button id="child">Click</button></div>
const parent = document.getElementById('parent');
const child = document.getElementById('child');
// Фаза перехвата
parent.addEventListener('click', () => console.log('Parent capturing'), true);
// Фаза всплытия (по умолчанию)
parent.addEventListener('click', () => console.log('Parent bubbling'));
// Фаза цели
child.addEventListener('click', () => console.log('Child target'));
// При клике на кнопку вывод:
// Parent capturing
// Child target
// Parent bubblingПонимание порядка выполнения помогает избежать неожиданного поведения, например, когда нужно остановить всплытие с помощью event.stopPropagation(). Это полезно при делегировании событий, когда обработчик вешается на родителя, а не на каждый дочерний элемент.
Вывод: Знание фаз событий необходимо для корректной обработки взаимодействий в сложных интерфейсах, особенно при использовании делегирования или модальных окон, где важно контролировать, какие обработчики срабатывают первыми.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию