Расскажите о том, что вы узнали на этой неделе.

Каррирование

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

Рекурсия

Рекурсия — это просто когда функция вызывает себя до тех пор, пока не будет выполнено условие, а затем она прекращает вызывать себя. Довольно просто, верно? Может быть трудно представить, как это выглядит, но функция может вызывать себя внутри себя.

Чистые функции

Чистая функция детерминирована. Если задан один и тот же ввод, функция всегда будет возвращать один и тот же вывод.

Чистая функция не вызовет побочных эффектов. Побочным эффектом является любое видимое изменение в системе.

Объясните Function.prototype.bind()

Метод bind() создает новую функцию, которая при вызове имеет ключевое слово this, установленное в предоставленное значение, с заданной последовательностью аргументов, предшествующих любой предоставленной при вызове новой функции.

Опишите всплытие событий.

Всплывающие события — это термин, с которым вы могли столкнуться в своих путешествиях по JavaScript. Это относится к порядку, в котором вызываются обработчики событий, когда один элемент вложен во второй элемент, и оба элемента зарегистрировали прослушиватель для одного и того же события (например, щелчка).

Начнем с распространения событий. Это общий термин как для всплывающей, так и для захвата событий. Рассмотрим типичную разметку для создания списка связанных изображений, например, для галереи миниатюр:

<ul>
    <li><a href="..."><img src="..." alt=""></a>
    <li><a href="..."><img src="..." alt=""></a>
    ...
    <li><a href="..."><img src="..." alt=""></a>
</ul>

Щелчок по изображению генерирует событие click не только для соответствующего элемента IMG , но и для родительского элемента A, для дедушки LI и т. д., проходя весь путь вверх по всем предкам элемента, прежде чем завершиться на объекте window.

В терминологии DOM изображение – это цель события, самый внутренний элемент, по которому был совершен щелчок. Цель события плюс его предки, от его родителя до объекта window, образуют ветвь в дереве DOM. Например, в галерее изображений эта ветвь будет состоять из узлов: IMG, A, LI, UL, BODY, HTML, document, window.

В чем разница между событием загрузки окна и событием документа DOMContentLoaded?

Событие load запускается после загрузки всей страницы, включая все зависимые ресурсы, такие как таблицы стилей и изображения. Это отличается от DOMContentLoaded, который запускается сразу после загрузки DOM страницы, не дожидаясь окончания загрузки ресурсов.

Событие DOMContentLoaded срабатывает, когда исходный HTML-документ полностью загружен и проанализирован, не дожидаясь завершения загрузки таблиц стилей, изображений и подфреймов.

Опишите стек вызовов.

В компьютерных науках стек вызовов — это структура данных стека, в которой хранится информация об активных подпрограммах компьютерной программы. Этот вид стека также известен как стек выполнения, стек программы, стек управления, стек времени выполнения стек, или машинный стек, и его часто сокращают до просто стек.