Что такое preventDefault?
DOM и браузер
`event.preventDefault()` — метод события, который отменяет действие браузера по умолчанию, но не останавливает всплытие события.
Что такое действие по умолчанию
Некоторые события вызывают встроенное поведение браузера:
- клик по ссылке
<a>→ переход поhref; - отправка формы
<form>→ перезагрузка страницы; - клик по чекбоксу → переключение;
contextmenu→ системное меню.
preventDefault отменяет именно это поведение.
form.addEventListener('submit', (e) => {
e.preventDefault(); // не перезагружать страницу
sendFormViaAjax();
});
link.addEventListener('click', (e) => {
e.preventDefault(); // не переходить по ссылке
});preventDefault против stopPropagation
- preventDefault — отменяет действие браузера, всплытие продолжается.
- stopPropagation — останавливает распространение события, действие по умолчанию сохраняется.
Это независимые вещи; при необходимости вызывают оба.
Проверка
event.defaultPrevented— был ли вызванpreventDefault.- Не все события отменяемы:
event.cancelable === falseозначает, чтоpreventDefaultне сработает.
Коротко для собеседования
preventDefault отменяет стандартное поведение браузера (переход по ссылке, submit формы), но не влияет на всплытие. Отличается от stopPropagation, который останавливает распространение, но не действие по умолчанию.