Я подписался на курс по основам JS, организованный Флавио Копесом. Каждый день Флавио рассылает участникам электронные письма с парой вопросов/задач. Всего должно быть 35 писем. Отвечать на них не обязательно, но ответы на вопросы являются важной частью курса. Поэтому я решил поделиться своими ответами с миром: в лучшем случае это может помочь кому угодно, кроме меня, в худшем — только мне.

Зачем нам нужно останавливать распространение событий?

Давайте представим, что у нас есть массивное DOM-дерево с огромным количеством обработчиков в нем. Много вложенных структур, где почти у каждого узла есть свой обработчик… Я думаю, когда одно из возможных событий запускается, мы абсолютно не хотим какого-либо типа распространения (либо всплытия по умолчанию, либо захвата), потому что это вызовет избыточное событие. срабатывание которых повлияет на производительность и даже может разрушить логику этих событий. Обычно обработчики регистрируются с четкой целью, и мы не хотим, чтобы они срабатывали случайно — в этом суть.

В чем основное различие между примитивными типами и объектами?

Когда мы объявляем переменную примитивного типа, мы сохраняем значение в этой переменной. Когда мы копируем переменную в другую, эта вторая переменная становится полной независимой копией первой. Итак, переменные передаются/копируются по значению.

Объекты так себя не ведут. Они передаются/копируются по ссылке. Это означает, что в примере, подобном приведенному выше, изменение объекта b также привело бы к изменению объекта a. В случае объектов мы имеем дело с ссылками на один и тот же объект, но не с независимыми объектами.

Как мы можем соединить две или более строк? Предоставьте мне образец кода.