Как работает «сборщик мусора» в JS?
Основной алгоритм сборки мусора называется «алгоритм пометок» (от англ. «mark-and-sweep»).
Согласно этому алгоритму, сборщик мусора регулярно выполняет следующие шаги:
- Сборщик мусора «помечает» (запоминает) все корневые объекты.
- Затем он идёт по ним и «помечает» все ссылки из них.
- Затем он идёт по отмеченным объектам и отмечает их ссылки. Все посещённые объекты запоминаются, чтобы в будущем не посещать один и тот же объект дважды.
…И так далее, пока не будут посещены все достижимые (из корней) ссылки.
- Все непомеченные объекты удаляются.
👉 @frontendInterview
Основной алгоритм сборки мусора называется «алгоритм пометок» (от англ. «mark-and-sweep»).
Согласно этому алгоритму, сборщик мусора регулярно выполняет следующие шаги:
- Сборщик мусора «помечает» (запоминает) все корневые объекты.
- Затем он идёт по ним и «помечает» все ссылки из них.
- Затем он идёт по отмеченным объектам и отмечает их ссылки. Все посещённые объекты запоминаются, чтобы в будущем не посещать один и тот же объект дважды.
…И так далее, пока не будут посещены все достижимые (из корней) ссылки.
- Все непомеченные объекты удаляются.
👉 @frontendInterview
This media is not supported in your browser
VIEW IN TELEGRAM
IT образование в 2022 стало бесплатным!
Все лекции и гайды топовых вузов страны тут
https://news.1rj.ru/str/vse_ob_it
Все лекции и гайды топовых вузов страны тут
https://news.1rj.ru/str/vse_ob_it
Основы Redux
Современная разработка давно проходит по стандартам использования фреймворков, что обеспечивает приложения долголетием и безопасностью. Это руководство расскажет об актуальной версии библиотеки Redux и познакомит вас с его популярными инструментами управления состоянием приложения.
👉 @frontendInterview
Современная разработка давно проходит по стандартам использования фреймворков, что обеспечивает приложения долголетием и безопасностью. Это руководство расскажет об актуальной версии библиотеки Redux и познакомит вас с его популярными инструментами управления состоянием приложения.
👉 @frontendInterview
Is every value in the array an array
Создайте функцию, которая проверит, все ли элементы массива являются массивами.
Примеры:
👉 @frontendInterview
Создайте функцию, которая проверит, все ли элементы массива являются массивами.
Примеры:
[[1],[2]] => true
['1','2'] => false
[{1:1},{2:2}] => false👉 @frontendInterview
Что такое прогрессивный рендеринг?
Прогрессивный рендеринг на стороне сервера (PSSR) основан на концепции потоковой передачи HTML. PSSR разбивает страницы на осмысленные компоненты с помощью разделения кода. Эти части страницы управляются разными скриптами, и теперь у нас есть возможность сделать гидратацию независимо. Давайте посмотрим, как работает PSSR:
1. Браузер запрашивает у сервера HTML-код.
2. Сервер делает API запросы и сначала рендерит критический контент, а затем отправляет его клиенту.
3. Браузер анализирует HTML и отображает его на экране.
4. Сервер рендерит некритический контент и передает его браузеру.
5. Затем браузер анализирует и отображает некритичный контент.
6. Между тем JS-бандлы загружаются и выполняются в фоновом режиме, а браузер передаёт интерактивность элементам DOM.
PSSR повышает производительность вашего веб-приложения, извлекая и визуализируя компоненты страницы параллельным и приоритетным образом.
👉 @frontendInterview
Прогрессивный рендеринг на стороне сервера (PSSR) основан на концепции потоковой передачи HTML. PSSR разбивает страницы на осмысленные компоненты с помощью разделения кода. Эти части страницы управляются разными скриптами, и теперь у нас есть возможность сделать гидратацию независимо. Давайте посмотрим, как работает PSSR:
1. Браузер запрашивает у сервера HTML-код.
2. Сервер делает API запросы и сначала рендерит критический контент, а затем отправляет его клиенту.
3. Браузер анализирует HTML и отображает его на экране.
4. Сервер рендерит некритический контент и передает его браузеру.
5. Затем браузер анализирует и отображает некритичный контент.
6. Между тем JS-бандлы загружаются и выполняются в фоновом режиме, а браузер передаёт интерактивность элементам DOM.
PSSR повышает производительность вашего веб-приложения, извлекая и визуализируя компоненты страницы параллельным и приоритетным образом.
👉 @frontendInterview
Хватит!
Хватит ходить на собеседования и сидеть без работы!
Подпишись на канал и прокачивайся: @frontend_loft
Хватит ходить на собеседования и сидеть без работы!
Подпишись на канал и прокачивайся: @frontend_loft
Почему результатом сравнения двух похожих объектов является false?
В JS объекты и примитивы сравниваются по-разному. Примитивы сравниваются по значению. Объекты — по ссылке или адресу в памяти, где хранится переменная. Вот почему первый console.log возвращает false, а второй — true. Переменные «a» и «c» ссылаются на один объект, а переменные «a» и «b» — на разные объекты с одинаковыми свойствами и значениями.
👉 @frontendInterview
В JS объекты и примитивы сравниваются по-разному. Примитивы сравниваются по значению. Объекты — по ссылке или адресу в памяти, где хранится переменная. Вот почему первый console.log возвращает false, а второй — true. Переменные «a» и «c» ссылаются на один объект, а переменные «a» и «b» — на разные объекты с одинаковыми свойствами и значениями.
👉 @frontendInterview
Что такое временная мёртвая зона (temporal dead zone)?
TDZ: термин для описания состояния, когда переменные недоступны. Они находятся в области видимости, но не объявлены.
Переменные let и const существуют в TDZ с начала их объемлющей области видимости до момента их объявления.
Можно также сказать, что переменные существуют в TDZ с момента их привязки (когда переменная привязывается к области видимости, внутри которой она находится) до момента ее объявления (когда для этой переменной в памяти резервируется имя).
Вы можете видеть на картинке, что если бы я обратился к переменной age раньше, чем она была объявлена, это вызвало бы ошибку ReferenceError. Из-за TDZ.
👉 @frontendInterview
TDZ: термин для описания состояния, когда переменные недоступны. Они находятся в области видимости, но не объявлены.
Переменные let и const существуют в TDZ с начала их объемлющей области видимости до момента их объявления.
Можно также сказать, что переменные существуют в TDZ с момента их привязки (когда переменная привязывается к области видимости, внутри которой она находится) до момента ее объявления (когда для этой переменной в памяти резервируется имя).
Вы можете видеть на картинке, что если бы я обратился к переменной age раньше, чем она была объявлена, это вызвало бы ошибку ReferenceError. Из-за TDZ.
👉 @frontendInterview
👍1
+1 в копилку полезных каналов о фронтенде
С Senior Frontend стартовать в айти намного проще:
• готовые примеры кода: смотрите на превью, как работает код, и сразу редактируете его в CodePen
• лайфхаки по JS, HTML, CSS, которыми делятся только в крупных компаниях
• тесты и опросы для тех, кто не запоминает сухую инфу
Сохраняйте: @seniorFront
С Senior Frontend стартовать в айти намного проще:
• готовые примеры кода: смотрите на превью, как работает код, и сразу редактируете его в CodePen
• лайфхаки по JS, HTML, CSS, которыми делятся только в крупных компаниях
• тесты и опросы для тех, кто не запоминает сухую инфу
Сохраняйте: @seniorFront
Визуализация данных с помощью библиотеки D3.js
Книга знакомит с одной из самых распространенных и мощных библиотек визуализации данных - D3.js. Прочтя ее, вы сможете решить любую задачу: от создания визуализации с нуля до запуска ее на сервере и написания автоматизированных тестов. здание предназначено разработчикам веб-приложений, специалистам по анализу и обработке данных и всем, интересующимся интерактивным представлением данных в вебе с помощью библиотеки D3.
👉 @frontendInterview
Книга знакомит с одной из самых распространенных и мощных библиотек визуализации данных - D3.js. Прочтя ее, вы сможете решить любую задачу: от создания визуализации с нуля до запуска ее на сервере и написания автоматизированных тестов. здание предназначено разработчикам веб-приложений, специалистам по анализу и обработке данных и всем, интересующимся интерактивным представлением данных в вебе с помощью библиотеки D3.
👉 @frontendInterview