[JS] > FrontEnd (Часть 1) Flashcards

1
Q

Что такое DOM?

A

DOM или Document Object Model (объектная модель документа) — это
обьектная модель состаящая из распаршеного HTML/XML документа, которая предоставляет API для взаимодействия

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Что такое распространение события (Event Propagation)?

A

Когда какое-либо событие происходит в элементе DOM, оно на самом деле происходит не только в нем. Событие «распространяется» от объекта Window до вызвавшего его элемента (event.target). При этом событие последовательно пронизывает (затрагивает) всех предков целевого элемента. Распространение события имеет три стадии или фазы:

1) Фаза погружения (захвата, перехвата) — событие возникает в объекте Window и опускается до цели события через всех ее предков.

2) Целевая фаза — это когда событие достигает целевого элемента.

3) Фаза всплытия — событие поднимается от event.target, последовательно проходит через всех его предков и достигает объекта Window.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое всплытие события?

A

Когда событие происходит в элементе DOM, оно затрагивает не только этот элемент. Событие «всплывает» (подобно пузырьку воздуха в воде), переходит от элемента, вызвавшего событие (event.target), к его родителю, затем поднимается еще выше, к родителю родителя элемента, пока не достигает объекта Window.

У метода addEventListener есть третий необязательный параметр — useCapture. Когда его значение равняется false (по умолчанию), событие начинается с фазы всплытия. Когда его значение равняется true, событие начинается с фазы погружения (для «прослушивателей» событий, прикрепленных к цели события, событие находится в целевой фазе, а не в фазах погружения или всплытия. События в целевой фазе инициируют все прослушиватели на элементе в том порядке, в котором они были зарегистрированы независимо от параметра useCapture — прим. пер.). Если мы кликнем по элементу child, в консоль будет выведено: child, parent, grandparent, html, document, window. Вот что такое всплытие события.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что такое погружение события?

A

Когда событие происходит в элементе DOM, оно происходит не только в нем. В фазе погружения событие опускается от объекта Window до цели события через всех его предков.

У метода addEventListener есть третий необязательный параметр — useCapture. Когда его значение равняется false (по умолчанию), событие начинается с фазы всплытия. Когда его значение равняется true, событие начинается с фазы погружения. Если мы кликнем по элементу child, то увидим в консоли следующее: window, document, html, grandparent, parent, child. Это и есть погружение события.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

В чем разница между методами event.preventDefault() и event.stopPropagation()?

мб разделить на два?

A

Метод event.preventDefault() отключает поведение элемента по умолчанию. Если использовать этот метод в элементе form, то он предотвратит отправку формы (submit). Если использовать его в contextmenu, то контекстное меню будет отключено (данный метод часто используется в keydown для переопределения клавиатуры, например, при создании музыкального/видео плеера или текстового редактора — прим. пер.). Метод event.stopPropagation() отключает распространение события (его всплытие или погружение).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Как узнать об использовании метода event.preventDefault()?

A

Для этого мы можем использовать свойство event.defaulPrevented, возвращающее логическое значение, служащее индикатором применения к элементу метода event.preventDefault.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Почему obj.someprop.x приводит к ошибке?

A

Ответ очевиден: мы пытается получить доступ к свойству x свойства someprop, которое имеет значение undefined. obj.__proto__.__proto = null, поэтому возвращается undefined, а у undefined нет свойства x.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что такое цель события или целевой элемент (event.target)?

A

Простыми словами, event.target — это элемент, в котором происходит событие, или элемент, вызвавший событие.

Мы прикрепили «слушатель» к внешнему div. Однако если мы нажмем на кнопку, то получим в консоли разметку этой кнопки. Это позволяет сделать вывод, что элементом, вызвавшим событие, является именно кнопка, а не внешний или внутренние div.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Что такое текущая цель события (event.currentTarget)?

A

Event.currentTarget — это элемент, к которому прикреплен прослушиватель событий.

<div>

Мы прикрепили слушатель к внешнему div. Куда бы мы ни кликнули, будь то кнопка или один из внутренних div, в консоли мы всегда получим разметку внешнего div. Это позволяет заключить, что event.currentTarget — это элемент, к которому прикреплен прослушиватель событий.
</div>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly