Расскажите о том, что вы узнали на этой неделе.
Каррирование
Каррирование полезно как в практических, так и в теоретических условиях. В функциональных языках программирования и многих других он обеспечивает способ автоматического управления тем, как аргументы передаются функциям и исключениям. В теоретической информатике это дает возможность изучать функции с несколькими аргументами в более простых теоретических моделях, которые предоставляют только один аргумент.
Рекурсия
Рекурсия — это просто когда функция вызывает себя до тех пор, пока не будет выполнено условие, а затем она прекращает вызывать себя. Довольно просто, верно? Может быть трудно представить, как это выглядит, но функция может вызывать себя внутри себя.
Чистые функции
Чистая функция детерминирована. Если задан один и тот же ввод, функция всегда будет возвращать один и тот же вывод.
Чистая функция не вызовет побочных эффектов. Побочным эффектом является любое видимое изменение в системе.
Объясните 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-документ полностью загружен и проанализирован, не дожидаясь завершения загрузки таблиц стилей, изображений и подфреймов.
Опишите стек вызовов.
В компьютерных науках стек вызовов — это структура данных стека, в которой хранится информация об активных подпрограммах компьютерной программы. Этот вид стека также известен как стек выполнения, стек программы, стек управления, стек времени выполнения стек, или машинный стек, и его часто сокращают до просто стек.