В JavaScript обычные функции возвращают одно значение или вообще ничего, но что, если бы вы могли выдавать несколько значений по запросу? Представляем вам генераторы - мощную функцию, появившуюся в ECMAScript 2015 (ES6), позволяющую функциям выдавать несколько значений, что дает возможность лучше контролировать итерацию.
Генераторы, созданные с помощью специального синтаксиса
function*, ведут себя совершенно иначе, чем традиционные функции. Вместо того чтобы выполняться до конца после вызова, функция-генератор возвращает объект генератор, способный управлять её выполнением. Это позволяет функции приостанавливать и возобновлять выполнение, выдавая значения одно за другим с помощью ключевого слова yield.Если вы создаете потоки данных, управляете асинхронными операциями или выполняете итерации над большими наборами данных, генераторы обеспечивают элегантное решение, позволяя выполнять итерации по требованию. Это введение посвящено принципу работы функций-генераторов, изучению ключевых методов, таких как
next(), и демонстрации того, как они органично сочетаются с циклами for...of в JavaScript.Далее вы узнаете, как использовать возможности генераторов JavaScript для упрощения итерации и оптимизации производительности кода.
#webdev #JavaScript #js #beginners #tutorial
Please open Telegram to view this post
VIEW IN TELEGRAM
По мере развития JavaScript появляются новые возможности и предложения, призванные сделать кодирование более эффективным и защищенным от ошибок. Одной из таких функций стал оператор безопасного присваивания (
?=), предложенный в качестве дополнения к языку. Хотя мы всё ещё ждём его официального релиза, реализовать подобную функциональность можно уже сегодня, чтобы обезопасить код от таких распространённых проблем, как null или undefined значения.В статье мы рассмотрим оператор
?=, создадим собственную версию, используя существующий JavaScript, и представим практические способы более изящной обработки промисов в асинхронных операциях.#JavaScript #js
Please open Telegram to view this post
VIEW IN TELEGRAM
Alpine.js - легкий JavaScript-фреймворк, позволяющий добавлять динамическое поведение в HTML с минимальными усилиями. В этом руководстве рассмотрим, как создать простой, но эффективный диалог (также известный как модальный) с помощью Alpine.js.
Эта техника идеально подходит для отображения дополнительной информации, форм или предупреждений без перехода с текущей страницы.
#webdev #Alpine #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Заметки разработчика
В статье я расскажу об оптимизации использования деструктурирующего присваивания для повышения производительности. Рассмотрим различия в байткоде между двумя подходами к деструктурирующему присваиванию. Я проведу тест, подчёркивающий эти различия, и в конце вы поймёте, почему
ArrayAssignmentPattern не всегда является лучшим выбором.#JavaScript #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
?=) в JavaScriptСовременная разработка на JavaScript часто сталкивается с задачами, связанными с асинхронными операциями и обработкой ошибок. Обычно для этих целей используются конструкции
try-catch и async-await. Однако они могут раздувать код и затруднять его чтение. Для решения этой проблемы был предложен новый безопасный оператор присваивания ?=, значительно упрощающий обработку ошибок и улучшающий читаемость кода. В этой статье мы рассмотрим принцип работы этого оператора, его особенности и преимущества, которые он дает разработчикам.#webdev #JavaScript #js
Please open Telegram to view this post
VIEW IN TELEGRAM
File и Blob объектами в JavaScriptВ JavaScript для представления двоичных данных используются объекты
File и Blob, но они служат для разных целей и имеют ряд отличительных характеристик. Рассмотрим их различия.#webdev #JavaScript #JS #File #Blob
Please open Telegram to view this post
VIEW IN TELEGRAM
WeakRef и FinalizationRegistryСегодня мы погрузимся в тему управления памятью в JavaScript - но не в традиционном смысле сборки мусора. Вместо этого мы изучим мощные возможности
WeakRef и FinalizationRegistry. Эти инструменты дают разработчикам контроль над слабыми ссылками и асинхронной финализацией объектов, позволяя более тонко и эффективно работать с памятью.Сборщик мусора JavaScript автоматически управляет памятью для большинства объектов, но некоторые сценарии, такие как кэширование или долгоживущие объекты, могут привести к утечкам памяти.
Если вы устали от того, что объекты задерживаются в памяти дольше положенного, или ищете способы управления ресурсами без лишних утечек памяти, это руководство для вас. Давайте начнем!
#webdev #JavaScript #JS #Memory #WeafRef #FinalizationRegistry
Please open Telegram to view this post
VIEW IN TELEGRAM
JavaScript предоставляет два основных способа определения функций: стрелочные и обычные функции. Хотя на первый взгляд они могут показаться похожими, есть несколько ключевых различий, влияющих на то, как выполняется код и как он структурирован. Давайте разберем эти различия, чтобы было понятно, когда использовать каждый тип.
#webdev #JavaScript #JS #functions
Please open Telegram to view this post
VIEW IN TELEGRAM
JavaScript - универсальный язык, на котором работает большая часть Интернета. Среди множества его возможностей некоторые функции выделяются своей практичностью и оптимизацией производительности. В этой статье мы рассмотрим шесть важнейших функций JavaScript, которые могут расширить инструментарий кодера:
Debounce, Throttle, Currying, Memoization, Deep Clone, а также одну бонусную функцию.#webdev #JS #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
JavaScript - мощный, гибкий язык, и знание нескольких классных приемов может сделать ваш код чище, быстрее и эффективнее. Ниже приведены 20 практических советов и трюков JavaScript, которые можно использовать в реальных приложениях для улучшения процесса разработки.
#webdev #JavaScript #JS #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы работали с JavaScript хоть сколько-нибудь продолжительное время, то, скорее всего, сталкивались с "адом обратных вызовов" - этой запутанной кашей вложенных обратных вызовов, из-за которой код трудно читать и ещё труднее поддерживать. Но есть и хорошие новости: с помощью правильных инструментов и паттернов вы можете полностью избежать ада обратных вызовов и писать чистый, эффективный асинхронный код. Давайте узнаем, как это сделать.
#webdev #JS #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
В мире веб-разработки обеспечение оптимальной производительности имеет решающее значение, особенно при работе с такими фреймворками, как React и Next.js. В этой статье мы рассмотрим пять основных приемов оптимизации производительности JavaScript, сосредоточившись на профилировании, практике протоколирования, создании объектов, инструментах мониторинга и предотвращении блокировки кода.
#webdev #JS #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
setTimeout в однопоточной среде JavaScriptJavaScript часто называют «однопоточным», то есть в нем есть только один основной поток для выполнения кода. Но если это так, то как функции вроде
setTimeout позволяют выполнять код асинхронно, не блокируя работу другого кода? Ответ кроется в уникальной среде выполнения JavaScript, включающей в себя немного магии из цикла событий и Web API.#webdev #JS #JavaScript #setTimeout
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы работали с JavaScript, то наверняка сталкивались с термином «замыкание».
Это одна из тех концепций, которые поначалу кажутся запутанными, но на деле оказываются невероятно удобными и довольно простыми, как только с ними разберешься. В статье мы рассмотрим, что такое замыкания, как они работают и почему они необходимы для написания чистого, модульного кода JavaScript.
#webdev #JS #JavaScript #Closure
Please open Telegram to view this post
VIEW IN TELEGRAM
AbortController - Как отменить текущие API запросы?Иногда необходимо отменить запрос, если он выполняется слишком долго. Если запрос требует слишком много времени на ответ, то основной поток будет занят, что приведет к увеличению нагрузки на процессор, снижению производительности и ухудшению пользовательского опыта, особенно для пользователей с медленным интернет-соединением.
#webdev #JS #JavaScript #AbortController
Please open Telegram to view this post
VIEW IN TELEGRAM
Веб-приложения используют пагинацию, чтобы сократить большие файлы и позволить просматривать их на нескольких страницах. В приложениях Angular эта функциональность может быть реализована как на стороне клиента, так и на стороне сервера. В статье рассматривается пагинация на стороне сервера и её преимущества перед пагинацией на стороне клиента с использованием библиотеки
ngx-pagination.#webdev #JS #JavaScript #Angular #Pagination
Please open Telegram to view this post
VIEW IN TELEGRAM
try, catch и finallyОшибки составляют неотъемлемую часть программирования. Ошибки в JavaScript могут возникать во время написания кода из-за проблем, связанных с синтаксисом, дублирующиеся переменные, неправильное использование конструкций JavaScript и т. д. Также они могут возникать во время выполнения программы из-за внутренних ошибок на внешнем сервере, недоступных ресурсов на конечной точке API, сломанных или отсутствующих структур данных, интерфейсами которых обычно манипулирует наша программа, и т. д.
Синтаксические ошибки в основном отслеживаются линерами, но также указываются, когда код с ошибками выполняется движком JavaScript, то есть во время выполнения. Ошибки, возникающие во время выполнения, часто называют исключениями. Исключения выбрасывают объект
Error, который — если его не обработать проактивно — мгновенно завершает работу скрипта и не позволяет выполнить остальную часть кода.Поэтому, когда ожидается ошибка, чтобы не сломать программу, важно обрабатывать ошибки изящно и направлять поток программы в безопасное русло, где дальнейшее выполнение будет беспрепятственным.
#webdev #JS #JavaScript #Error
Please open Telegram to view this post
VIEW IN TELEGRAM
У jQuery долгая и уважаемая история, однако новый релиз jQuery v4 beta не содержит никаких интересных функций для современных веб-разработчиков. Есть несколько причин, по которым сейчас самое время отказаться от использования jQuery:
#webdev #JS #JavaScript #jQuery
Please open Telegram to view this post
VIEW IN TELEGRAM
Знакомство с новыми функциональными возможностями языков программирования сродни празднику — оно наполнено предвкушением и волнением от открытия чего-то нового. Благодаря предлагаемым функциям ECMAScript 2024 (ES2024) разработчики JavaScript находятся на пороге знакомства с новыми инструментами, обещающими сделать кодирование более эффективным, читабельным и надежным. От интуитивно понятного синтаксиса ожиданий верхнего уровня до надежности неизменяемых записей и кортежей - ES2024 содержит множество тщательно отобранных усовершенствований, призванных расширить возможности разработчиков и обогатить экосистему JavaScript.
Давайте познакомимся с некоторыми из них и узнаем, как они могут улучшить JavaScript.
#webdev #JS #JavaScript #ES2024
Please open Telegram to view this post
VIEW IN TELEGRAM