Вопросы

1. Что такое поток документа?

Особенности позиционирования элементов. Position absolute, relative, fixed.

2. Что такое margin-collapsing и box-sizing?

Не схлопываются элементы, если к последнему применено свойство clear

  • content-box - свойства width и height не включают в себя margin, padding, border
  • border-box - свойства width и height включают в себя значения padding и border, но не margin.
  • padding-box - войства width и height включают в себя значения padding, но не margin и border.

3. Каким образом рассчитывается занимаемое и свободное пространство при использовании свойств flex-grow, flex-shrink?

flex-grow - способность элемента растягиваться. Свойство имеет значение от 0, которая служит пропорцией. По умолчанию - 0. Если указано только у одного элемента, например, 1, то он займет всё доступное место. Отрицательные числа не поддерживаются.

flex-shrink - способность элемента сжиматься при необходимости.

4. Контекст наложения

При указании свойства z-index позиция элемента будет зависеть от значения z-index родителя. Поэтому называется "Контекст наложения".

Что такое замыкание, каррирование, частичное применение, мемоизация? reduce, sort, filter, map, forEach, some, every Что такое функция-конструктор? Что такое прототип? Какие возможности имеет/дает? Какие 3 (как минимум) способа есть отнаследоваться в JavaScript-е? JS. Дескрипторы свойств объектов: что такое и что позволяют делать? JS. Что такое "всплытие" объявления переменных, и в каком случае у функций тут появляются особенности? Влияет ли директива use strict на "всплытие"? Как избежать "всплытия" переменных? JS. Как использовать стандартные методы массива для ненастоящих массивов (например, вызвать map для arguments) и почему это работает? GIT. Что делают флаги --squash и --no-ff? GIT. Что такое HEAD и detached HEAD в контексте git? Что значат HEAD^, HEAD~, HEAD@{1}? OOP. Что такое coupling и сohesion? OOP. Какие есть особенности у каждого из основных типов отношений между классами: композиции, агрегирования, наследования, ассоциации? OOP. Что такое принципы SOLID? Что означает каждая буква из акронима? Что такое Reason to change в определении первого принципа SRP? OOP. Что такое полиморфизм и инкапсуляция? Какие проблемы они решают? Какие виды полиморфизма поддерживает TS? FP. Что такое сайд эффекты? Чем они вредны и чем полезны? Что такое чистые функции? Что такое "грязные функции"? В чем преимущества одних над другими? Может ли из чистой функции произойти вызов "грязной"? FP. Что такое Immutability? Являются ли объекты, содержащиеся в переменных, объявленных с помощью const, иммутабельными? Какие преимущества имеют иммутабельные структуры данных? Что такое structural sharing и какие проблемы решает? Data. Когда могут возникать утечки памяти? Как их находить и устранять? Структуры и типы данных. Что такое связный список? Как его элементы хранятся в памяти? В чем его преимущества перед списком? Чем отличается от массива? Структуры и типы данных. Что такое WeakMap и WeakSet? В чем отличия от Map и Set? Какие примеры использования существуют? Базовые принципы проектирования. Что такое абстрагирование? Какие есть отличия между абстракцией, инкапсуляцией и скрытием информации? Базовые принципы проектирования. Когда абстрагирование противоречит принципу KISS? Почему наследование может приводить к нарушению KISS? Базовые принципы проектирования. Как принцип DRY связан с Cohesion? Как принцип DRY связан с принципом SRP? Какие есть примеры дублирования кода, которые не нарушают DRY? Ассинхронность. Что такое Event Loop? Что такое Job queue? Что значит цифра 100 в данном случае setTimeout(func, 100)? Генераторы. Что такое итераторы? В чём разница между перебором массива и итератора через конструкции: for, for of, for in? Рассказать про протоколы итерирования: Symbol.iterator и Symbol.asyncIterator Генераторы. Что такое генераторы? Где они могут пригодиться? Как происходит работа с async generators? JS. Что такое Promise? В чем разница при создании Promise с помощью конструктора и с помощью фабрики? Что такое promise chaining? Можно ли отменить выполнение промиса? JS. Что такое localStorage, sessionStorage, cookies, indexdb? Для чего нужны? Какие отличия? Когда что использовать? Какие есть ограничения? Что такое флаги в регулярных выражениях? Рассказать про флаги глобальности, регистронезависимости, многострочности. Что такое жадные и ленивые квантификаторы? Security. Что такое SOP и CORS? Как с ними работать? API. Объяснить отличия и основные особенности следующих видов API: REST API, JSON API, JSON RPC, GraphQL TS. Что такое перегрузка функции? Какие есть способы её реализовать?