Ты наконец-то поймешь асинхронность в JS
Сегодня мы поговорим о том, что такое асинхронность в JavaScript и как она работает. Это одна из тех вещей, которые кажутся сложными, но на самом деле довольно просты, как только разберешься.
Асинхронный код в JavaScript выполняется в одном потоке, но не синхронно с основным потоком выполнения. Вместо того, чтобы блокировать выполнение основного кода, асинхронные операции обрабатываются в фоновом режиме. Это позволяет приложению продолжать свою работу без задержек, даже когда выполняются длительные операции, такие как запросы к серверу или обработка файлов. Таким образом, JavaScript обеспечивает отзывчивость приложений, не используя многопоточность, а полагаясь на механизмы асинхронного выполнения.
Ссылка
#js
Сегодня мы поговорим о том, что такое асинхронность в JavaScript и как она работает. Это одна из тех вещей, которые кажутся сложными, но на самом деле довольно просты, как только разберешься.
Асинхронный код в JavaScript выполняется в одном потоке, но не синхронно с основным потоком выполнения. Вместо того, чтобы блокировать выполнение основного кода, асинхронные операции обрабатываются в фоновом режиме. Это позволяет приложению продолжать свою работу без задержек, даже когда выполняются длительные операции, такие как запросы к серверу или обработка файлов. Таким образом, JavaScript обеспечивает отзывчивость приложений, не используя многопоточность, а полагаясь на механизмы асинхронного выполнения.
Ссылка
#js
1/n: Задачи leetcode JS — «Max Consecutive Ones» (Найти максимальное количество последовательных единиц)
Я столкнулся с тем, что на собеседованиях в некоторые ИТ-компании на Frontend JavaScript требуется решать задачи, и я решил сделать серию статей на тему, как я решил их тем или иным образом. Перед вами — первый текст из этой серии.
Для решения будем использовать язык программирования TypeScript.
Ссылка
#js
Я столкнулся с тем, что на собеседованиях в некоторые ИТ-компании на Frontend JavaScript требуется решать задачи, и я решил сделать серию статей на тему, как я решил их тем или иным образом. Перед вами — первый текст из этой серии.
Для решения будем использовать язык программирования TypeScript.
Ссылка
#js
Насколько потолстел JavaScript к 2024 году?
Я немного отстал от современных тенденций фронтенд-разработки. Помню, были статьи на тему раздутия веб-среды, в которых писали, что средний размер страницы начал достигать нескольких мегабайтов!
И всё это время я жил с мыслью, что если средний размер страницы равен, скажем, 3 МБ, то JS-бандл должен составлять около 1 МБ. Естественно, основную часть объёма должно занимать содержимое, не так ли?
Что ж, проверить это можно лишь экспериментальным путём, чем я и займусь! Эту статью я пишу в 2024 году и думаю, что через пару лет эксперимент неплохо бы повторить.
Ссылка
#js
Я немного отстал от современных тенденций фронтенд-разработки. Помню, были статьи на тему раздутия веб-среды, в которых писали, что средний размер страницы начал достигать нескольких мегабайтов!
И всё это время я жил с мыслью, что если средний размер страницы равен, скажем, 3 МБ, то JS-бандл должен составлять около 1 МБ. Естественно, основную часть объёма должно занимать содержимое, не так ли?
Что ж, проверить это можно лишь экспериментальным путём, чем я и займусь! Эту статью я пишу в 2024 году и думаю, что через пару лет эксперимент неплохо бы повторить.
Ссылка
#js
Визуализация JavaScript: цикл событий
JavaScript является однопоточным: одновременно может выполняться только одна задача. Обычно в этом нет ничего страшного, но теперь представьте, что вы выполняете задачу, которая занимает 30 секунд... Да... Во время этой задачи мы ждем 30 секунд, прежде чем что-то еще может произойти (JavaScript по умолчанию запускается в главном потоке браузера, поэтому весь интерфейс завис)
В этой статье хорошо объясняется event loop с визуализацией
Ссылка(en)
#js
JavaScript является однопоточным: одновременно может выполняться только одна задача. Обычно в этом нет ничего страшного, но теперь представьте, что вы выполняете задачу, которая занимает 30 секунд... Да... Во время этой задачи мы ждем 30 секунд, прежде чем что-то еще может произойти (JavaScript по умолчанию запускается в главном потоке браузера, поэтому весь интерфейс завис)
В этой статье хорошо объясняется event loop с визуализацией
Ссылка(en)
#js
Модульность в JavaScript: CommonJS, AMD, ES Modules
Начало истории модульности в JavaScript положило хаос: глобальные переменные, конфликты имен и сложности с зависимостями. Со временем сообщество предложило несколько подходов для организации модулей, начиная от CommonJS, которое легло в основу Node.js, до AMD, предпочтительного для асинхронной загрузки кода в браузерах. И приближаясь к настоящему времени появился ES Modules стандартизированный и встроенный в язык механизма модулей, который стал частью ECMAScript в 2015 году.
В этой статье рассмотрим кратко про CommonJS, AMD, и наконец - как появился ES Modules.
Ссылка
#js
Начало истории модульности в JavaScript положило хаос: глобальные переменные, конфликты имен и сложности с зависимостями. Со временем сообщество предложило несколько подходов для организации модулей, начиная от CommonJS, которое легло в основу Node.js, до AMD, предпочтительного для асинхронной загрузки кода в браузерах. И приближаясь к настоящему времени появился ES Modules стандартизированный и встроенный в язык механизма модулей, который стал частью ECMAScript в 2015 году.
В этой статье рассмотрим кратко про CommonJS, AMD, и наконец - как появился ES Modules.
Ссылка
#js
Мемоизация в React: я почитал документацию вместо вас
В статье рассмотрены три инструмента мемоизации в React: useMemo, useCallback, memo. Главный источник информации: документация React. Не всем комфортно работать напрямую с документацией, так что если вы постоянно откладываете погружение в документацию React - я сделал это за вас, постарался выделить самое важное, и дать ссылки для углубленного погружения.
Ссылка
#js
В статье рассмотрены три инструмента мемоизации в React: useMemo, useCallback, memo. Главный источник информации: документация React. Не всем комфортно работать напрямую с документацией, так что если вы постоянно откладываете погружение в документацию React - я сделал это за вас, постарался выделить самое важное, и дать ссылки для углубленного погружения.
Ссылка
#js
JS. Валидация данных. Пишем свой YUP
В web разработке при работе с пользовательскими данными валидация должна применяться при получении данных сервисом. Условно можно разделить валидацию на:
Клиентскую. При вводе данных в формы важно провалидировать введенные данные и сообщить пользователю о их некорректности. Это дает понятный обратный отклик пользователю о его действиях и предотвращает дальнейшие некорректные действия в сервисе.
Серверную. Любой код, выполняемый на клиенте, а также запросы, поступающие от клиентского приложения, не могут считаться доверенными и должны быть провалидировано. Нельзя рассчитывать на то, что клиентское приложение гарантированно подготовит корректные данные, так как при разработке может возникнуть несоответствие логики работы с данными на сервере и клиенте. При этом мы также можем столкнуться со случаем, когда клиент вручную подготавливает данные, маскируясь под приложение.
Ссылка
#js
В web разработке при работе с пользовательскими данными валидация должна применяться при получении данных сервисом. Условно можно разделить валидацию на:
Клиентскую. При вводе данных в формы важно провалидировать введенные данные и сообщить пользователю о их некорректности. Это дает понятный обратный отклик пользователю о его действиях и предотвращает дальнейшие некорректные действия в сервисе.
Серверную. Любой код, выполняемый на клиенте, а также запросы, поступающие от клиентского приложения, не могут считаться доверенными и должны быть провалидировано. Нельзя рассчитывать на то, что клиентское приложение гарантированно подготовит корректные данные, так как при разработке может возникнуть несоответствие логики работы с данными на сервере и клиенте. При этом мы также можем столкнуться со случаем, когда клиент вручную подготавливает данные, маскируясь под приложение.
Ссылка
#js
Решение задач Front End с интервью. Throttle
Задача на реализацию Throttling часто дается на интервью по front end разработке.
Давайте реализуем функцию throttle, которая принимает функцию callback и время ожидания. Вызов throttle() должен возвращать новую функцию, которая будет вызывать внутри себя callback функцию.
Ссылка
#js
Задача на реализацию Throttling часто дается на интервью по front end разработке.
Давайте реализуем функцию throttle, которая принимает функцию callback и время ожидания. Вызов throttle() должен возвращать новую функцию, которая будет вызывать внутри себя callback функцию.
Ссылка
#js
Решение задач Front End с интервью. Promise Pool
Разбираем задачу Promise Pool (Leetcode 2636)
Дан массив асинхронных функций functions и максимальный размер пула n. Необходимо написать асинхронную функцию promisePool. Она должна возвращать Promise, который разрешается, когда разрешаются все входные функции function.
Ссылка
#js
Разбираем задачу Promise Pool (Leetcode 2636)
Дан массив асинхронных функций functions и максимальный размер пула n. Необходимо написать асинхронную функцию promisePool. Она должна возвращать Promise, который разрешается, когда разрешаются все входные функции function.
Ссылка
#js
JavaScript: структуры данных и алгоритмы. Часть 1
В этой серии статей мы будем разбирать структуры данных и алгоритмы, представленные в этом замечательном репозитории.
Сегодня мы будем говорить о самых простых и популярных структурах данных: односвязном и двусвязном списках, стеке и очереди.
Код, представленный в этой и других статьях серии, можно найти в этом репозитории.
Ссылка
#js
В этой серии статей мы будем разбирать структуры данных и алгоритмы, представленные в этом замечательном репозитории.
Сегодня мы будем говорить о самых простых и популярных структурах данных: односвязном и двусвязном списках, стеке и очереди.
Код, представленный в этой и других статьях серии, можно найти в этом репозитории.
Ссылка
#js
Я немного отстал от современных тенденций фронтенд-разработки. Помню, были статьи на тему раздутия веб-среды, в которых писали, что средний размер страницы начал достигать нескольких мегабайтов!
И всё это время я жил с мыслью, что если средний размер страницы равен, скажем, 3 МБ, то JS-бандл должен составлять около 1 МБ. Естественно, основную часть объёма должно занимать содержимое, не так ли?
Ссылка
#js
Please open Telegram to view this post
VIEW IN TELEGRAM
Кажется, мы стали забывать основы фронтенда
Обычно, в подобных статьях я выступаю на позитивной стороне и говорю, что не все так плохо, что умелыми руками можно делать прекрасные вещи. Однако, недавно со мной произошло несколько историй, которые заставили меня пересмотреть некоторые вещи.
В этой статье я перескажу истории с некоторыми техническими деталями и порассуждаю, что делать дальше.
Ссылка
#js
Обычно, в подобных статьях я выступаю на позитивной стороне и говорю, что не все так плохо, что умелыми руками можно делать прекрасные вещи. Однако, недавно со мной произошло несколько историй, которые заставили меня пересмотреть некоторые вещи.
В этой статье я перескажу истории с некоторыми техническими деталями и порассуждаю, что делать дальше.
Ссылка
#js
JavaScript с нуля до профи
Книга обучает разработке веб-приложений на JavaScript через теорию и практические проекты, включая проверку данных, асинхронный код и работу с DOM. Включены примеры валидаторов, игр и анимаций, а также краткий курс по HTML и CSS.
👀 Почитать книжку
#js
Книга обучает разработке веб-приложений на JavaScript через теорию и практические проекты, включая проверку данных, асинхронный код и работу с DOM. Включены примеры валидаторов, игр и анимаций, а также краткий курс по HTML и CSS.
👀 Почитать книжку
#js
CodeBasics — портал с бесплатными курсами программирования
Курсы по самым разным направлениям. По фронту есть HTML/CSS, JS, TypeScript. Как пишут авторы, помимо материала на курсе есть тренажёры для отработки навыков
👀 Приступить к курсам
#js #css #html
Курсы по самым разным направлениям. По фронту есть HTML/CSS, JS, TypeScript. Как пишут авторы, помимо материала на курсе есть тренажёры для отработки навыков
#js #css #html
Please open Telegram to view this post
VIEW IN TELEGRAM
JavaScript. Рецепты для разработчиков
Зачем решать типовые задачи с нуля? В книге представлены готовые рецепты для JavaScript, примеры кода и советы по настройке среды разработки, работе с мультимедиа, данными и асинхронным кодом. Вы также освоите Node.js и Express для создания приложений.
👀 Почитать книжку
#js
Зачем решать типовые задачи с нуля? В книге представлены готовые рецепты для JavaScript, примеры кода и советы по настройке среды разработки, работе с мультимедиа, данными и асинхронным кодом. Вы также освоите Node.js и Express для создания приложений.
👀 Почитать книжку
#js
Реальное тестовое задание на позицию Junior Frontend Developer (React) от компании Jupiter Soft
❗️ Обратите внимание, что макеты часто дают не только в формате Figma, но и в Adobe XD
Все материалы, что предоставляли для реализации тестового задания лежат тут:
👀 Посмотреть
#js
❗️ Обратите внимание, что макеты часто дают не только в формате Figma, но и в Adobe XD
Все материалы, что предоставляли для реализации тестового задания лежат тут:
#js
Please open Telegram to view this post
VIEW IN TELEGRAM
JavaScript 30 📆
Челлендж на 30 дней, где каждый день вы будете создавать небольшой проект, каждый из которых поможет отточить какой-то конкретный аспект JS.
Задания подойдут и для опытных, и для новичков
👀 Начать челлендж
#js
Челлендж на 30 дней, где каждый день вы будете создавать небольшой проект, каждый из которых поможет отточить какой-то конкретный аспект JS.
Задания подойдут и для опытных, и для новичков
#js
Please open Telegram to view this post
VIEW IN TELEGRAM
Продвинутые концепции языка JavaScript и ООП [2023]
Этот продвинутый курс по JavaScript охватывает ООП, асинхронность, Event Loop, модульность, структуры данных и сборку. Он требует базовых знаний JS, HTML и CSS.
👀 Глянуть курс
#js
Этот продвинутый курс по JavaScript охватывает ООП, асинхронность, Event Loop, модульность, структуры данных и сборку. Он требует базовых знаний JS, HTML и CSS.
#js
Please open Telegram to view this post
VIEW IN TELEGRAM
Чистый код: фундаментальное руководство по JavaScript
Статья о принципах чистого кода с 10 примерами кода JS и TS, которые иллюстрируют принципы
👀 Посмотреть, почитать
#js
Статья о принципах чистого кода с 10 примерами кода JS и TS, которые иллюстрируют принципы
#js
Please open Telegram to view this post
VIEW IN TELEGRAM
date-fns — удобная JS-библиотека для работы с датами
Легковесная библиотека для работы с датами и временем в JavaScript. Она позволяет обрабатывать даты без лишних зависимостей и сложностей, как в других библиотеках (например, Moment.js).
В чём удобство библиотеки:
✅ Она легкая — модульная структура: импортируешь только нужные функции.
✅ Современная — работает с нативными объектами Date.
✅ Мощная — более 200 функций для форматирования, парсинга, вычислений, локализации и других операций с датами.
✅ Поддержка таймзон — через дополнение date-fns-tz.
Подойдёт, когда нужно быстро работать с датами и важна производительность и модульность
👀 Посмотреть поближе
#js
Легковесная библиотека для работы с датами и временем в JavaScript. Она позволяет обрабатывать даты без лишних зависимостей и сложностей, как в других библиотеках (например, Moment.js).
В чём удобство библиотеки:
Подойдёт, когда нужно быстро работать с датами и важна производительность и модульность
#js
Please open Telegram to view this post
VIEW IN TELEGRAM