Promise.try — Унифицированная обработка ошибокПрекратите смешивать
try/catch с цепочками промисов — новый Promise.try в JavaScript обрабатывает возвращаемые значения, промисы и ошибки унифицированоВ JavaScript появилась новая утилита промиса, позволяющая сделать работу с потенциально асинхронными функциями чище и безопаснее.
Promise.try позволяет обернуть любую функцию в промис, независимо от того, асинхронная она или нет, сохраняя оптимальное время выполнения.#JavaScript #ES2025 #Promise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
<< и >>Практическое руководство по операторам левого и правого битового сдвига JavaScript
Битовые операторы — мощные, но часто упускаемые из виду функции JavaScript. Хотя они нечасто встречаются в повседневной веб-разработке, их понимание позволяет оптимизировать производительность и лучше понять, низкоуровневую обработку чисел компьютером.
#JavaScript #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
link rel='modulepreload': Оптимизация загрузки модулей JavaScriptrel='modulepreload' указывает, что скрипт модуля должен быть получен, проанализирован и откомпилирован заранее, и сохранён для последующего выполнения.#Frontend #HTML #JavaScript #Preload #Module
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Глубокое погружение в JavaScript Символы — что это такое, чем они важны и как их эффективно использовать
Я помню, как впервые столкнулся с Символами в JavaScript. Это был 2015 год, как и многие разработчики, я подумал: "Отлично, ещё один примитивный тип, о котором нужно беспокоиться".
Но по мере карьерного роста я стал ценить эти маленькие причудливые примитивы. Они решают некоторые интересные задачи так, что строки и числа просто не могут с ними сравниться.
Symbol отличается от других примитивов JavaScript тем, что они гарантированно уникальны.
#JavaScript #Symbol
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Set и Map: За пределами массивов и объектовКак эффективно обрабатывать уникальные значения и пары ключ-значение, избегая принудительного приведения типов и потери производительности?
До того как в ES6 появились
Set и Map, возможности хранения коллекций данных в JavaScript были ограничены. Использовались объекты для пар ключ-значение и массивы для списков. Это приводило к распространённым проблемам.#JavaScript #Set #Map
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Откройте возможности управления приоритетами и контроля выполнения задач в JavaScript с помощью нового Scheduler API. Новый подход поможет вам стать более продуктивными и эффективными в своей работе.
JavaScript Scheduler API представляет стандартизированный подход к управлению приоритетами задач в веб-приложениях.
Разработчики JavaScript исторически полагались на
setTimeout(0) для передачи главного потока. Новый API обеспечивает более точный контроль над тем, как и когда выполняются задачи.Традиционному подходу
setTimeout к передаче главного потока не хватает детального контроля и правильной расстановки приоритетов. API Scheduler устраняет эти недостатки, предлагая более надёжное решение.#JavaScript #Scheduler
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
navigator.clipboard — Новый асинхронный Clipboard API в JavaScriptКопирование и вставка текста, изображений и файлов с помощью нового API
navigator.clipboardВпервые столкнувшись с новым API
navigator.clipboard, я был поражён тем, насколько просто он упростил копирование и вставку в веб-приложениях. Прошли времена хаков document.execCommand.Раньше для обработки операций с буфером обмена использовался
document.execCommand("copy"). Этот подход был синхронным и ограниченным — он мог копировать текст только из выбранных элементов DOM. Кроме того, в разных браузерах он работал нестабильно.#JavaScript #Clipboard #API
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Демонстрация того, как современная Web-платформа может радикально упростить и обогатить старую кодовую базу.
Это первая часть серии статей о силе современной Web-платформы. Я написал каждую статью, основываясь на результатах проекта, созданного в 2018 году, а затем обновлённого в 2024 году.
#Frontend #HTML #JavaScript #WebPlatform
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Intl.DurationFormat: Форматирование временных интервалов с поддержкой локалиХватит писать код форматирования временных интервалов вручную. Используйте новый мощный API Intl.DateTimeFormat для отображения локализированного времени.
Временные интервалы встречаются повсюду — видеоплееры показывают оставшееся время, фитнес-приложения отслеживают продолжительность тренировок, а инструменты управления проектами измеряют время выполнения задач. Традиционно для форматирования этих значений в разных локалях требовался собственный код или внешние библиотеки.
Объект
Intl.DurationFormat элегантно решает данную проблему. Он является частью основной спецификации языка ECMAScript — в частности, ECMAScript Internationalization API (ECMA-402). Это делает его нативной функцией JavaScript, а не API веб-браузера, хотя браузерная реализация определяет его доступность.#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Быстрая сортировка строк с `Intl.Collator`Улучшите сортировку строк с учётом локали, заменив повторяющиеся вызовы `
String.localeCompare` одним экземпляром `Intl.Collator` для более быстрого и эффективного сравнения.Сортировка строк может создавать неожиданные проблемы с производительностью, особенно при работе с большими наборами данных, нуждающимися в соответствующей локализации. Многие разработчики полагаются на
String.localeCompare для сортировки по алфавиту, но есть и более эффективный подход, заслуживающий внимания.#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Модернизация с Web-платформой: Уменьшение движения
Демонстрация, как современная веб-платформа может упростить уменьшение движения на старой кодовой базе.
🖥 Читать статью
📱 @dev_notes_ru
#Frontend #CSS #JavaScript #A11y
Демонстрация, как современная веб-платформа может упростить уменьшение движения на старой кодовой базе.
#Frontend #CSS #JavaScript #A11y
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Значения по умолчанию с оператором нулевого слиянияОператор нулевого слияния (
??) предоставляет простой способ обработки null или undefined значений в JavaScript. Он просто необходим, и я расскажу, почему.Один из важных элементов синтаксиса JavaScript, который я с удовольствием использую, — это оператор нулевого слияния (
??). Оператор ?? обрабатывает значения по умолчанию более эффективно по сравнению с традиционным подходом, использующим логический оператор ИЛИ (||). Это 100-процентно необходимый приём.Оба оператора
?? и || возвращают правый операнд, если левый операнд является «ложным». Но ключевое различие заключается в том, что считать «ложным»…#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
this в JavaScript: Когда определяется thisКлючевое слово
this в JavaScript ставит в тупик всех разработчиков — от джунов до сеньоров. В первой из двух частей углубимся в основы, необходимые для лучшего понимания this и того, как он работает.#JavaScript #this
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Преобразование значений в строки в JavaScriptРуководство по преобразованию значений в строки в JavaScript: сравнение 5 методов, работа с объектами и
JSON.stringify(), практические примеры и лучшие практики.Преобразование значений в строки в JavaScript сложнее, чем кажется:
- В большинстве подходов есть значения, которые они не могут обработать.
- Мы не всегда видим все данные.
#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Error.isError(): Лучший способ проверки типов ошибки в JavaScriptРуководство по новому методу `Error.isError()` в JavaScript: почему он лучше `instanceof`, как решает проблемы кросс-контекстных ошибок и типизации в TypeScript.
Система обработки ошибок JavaScript долгое время оставалась слепым пятном при работе с ошибками в разных контекстах исполнения. Новый метод
Error.isError() устраняет это ограничение, предоставляя разработчикам более надёжный способ идентификации объектов ошибок.#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Что такое this в JavaScriptВо второй части серии Mat Marquis объясняет, что такое
this на самом деле, и помогает разобраться, чему он соответствует, исходя из различных контекстов.#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Что такое рекурсия и как использовать её в JavaScript?
Рекурсия — это не просто функция, вызывающая саму себя. Это инструмент, который помогает, когда циклы уже не справляются.
- Как устроены рекурсивные функции
- Когда рекурсия полезнее цикла
- Примеры
- Как не попасть в бесконечный вызов
🖥 Читать статью
📱 @dev_notes_ru
#JavaScript
Рекурсия — это не просто функция, вызывающая саму себя. Это инструмент, который помогает, когда циклы уже не справляются.
- Как устроены рекурсивные функции
- Когда рекурсия полезнее цикла
- Примеры
- Как не попасть в бесконечный вызов
#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
ECMAScript 2025 утверждён!
На 129-й Генеральной ассамблее Ecma был принят новый стандарт JavaScript. Что нас ждёт:
✅ Импорт JSON с
✅
✅
✅
✅ Поддержка
🖥 Читать статью
📱 @dev_notes_ru
#JavaScript #ECMAScript2025 #ES2025 #frontend #вебразработка
На 129-й Генеральной ассамблее Ecma был принят новый стандарт JavaScript. Что нас ждёт:
✅ Импорт JSON с
with { type: 'json' } ✅
iterator.filter().drop().take() — полноценные цепочки итераторов ✅
Set.prototype.union(), intersection() и другие ✅
Promise.try() и RegExp.escape() ✅ Поддержка
Float16Array и inline-флагов в регулярках#JavaScript #ECMAScript2025 #ES2025 #frontend #вебразработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Что следует избегать в JavaScript
Даже опытные разработчики иногда совершают ошибки, которые ведут к багам, уязвимостям и странному поведению.
В статье — список распространённых антипаттернов, которых лучше избегать:
🚫
🚫
🚫
🚫
🚫 Функции с 6 аргументами подряд
…и другие ловушки, в которые попадали почти все.
🔎 Это не догмы, а практичные советы, основанные на реальных граблях.
🖥 Читать статью
📱 @dev_notes_ru
#JavaScript #tips #антипаттерны #советы
Даже опытные разработчики иногда совершают ошибки, которые ведут к багам, уязвимостям и странному поведению.
В статье — список распространённых антипаттернов, которых лучше избегать:
🚫
innerHTML вместо textContent🚫
JSON.stringify() для сравнения объектов🚫
== вместо ===🚫
eval() и var🚫 Функции с 6 аргументами подряд
…и другие ловушки, в которые попадали почти все.
🔎 Это не догмы, а практичные советы, основанные на реальных граблях.
#JavaScript #tips #антипаттерны #советы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Новый выпуск Firefox — это не просто набор обновлений, а настоящий прорыв в инструментах для веб-разработки. Основные нововведения: CSS Anchor Positioning по умолчанию, мощный Navigation API и расширенные возможности View Transitions. Давайте разберем все детали.
CSS Anchor Positioning (якорное позиционирование) — это настоящая революция в CSS. Теперь можно «привязывать» один элемент (например, тултип или выпадающее меню) к другому (якорю) прямо в CSS, без JavaScript, создавая отзывчивые интерфейсы.
Что теперь можно в Firefox 147:
Включено по умолчанию! Больше никаких флагов.
anchor-center: Новое, удобное значение для свойств align-self, justify-self и других, чтобы центрировать элемент относительно его якоря.position-anchor: none: Новое значение для отвязки элемента от якоря.@position-try правила отображаются в панели CSS.Практический пример создания тултипа:
/* 1. Объявляем якорь (кнопка) */
.button {
anchor-name: --tooltip-anchor;
}
/* 2. Создаем и привязываем тултип */
.tooltip {
position: absolute;
position-anchor: --tooltip-anchor; /* Связываем с кнопкой */
bottom: anchor(top); /* Размещаем тултип над кнопкой */
left: anchor(center); /* Центрируем по горизонтали */
translate: -50% 0; /* Точная центровка */
}
Преимущество: такой тултип автоматически адаптируется к прокрутке и границам экрана.
🛠 Улучшения для SPA: Navigation API и View Transitions
Firefox 147 делает разработку одностраничных приложений (SPA) значительно удобнее.
⚡️ Navigation API — новый стандарт для управления навигацией.
Позволяет перехватывать навигационные действия, управлять историей браузера и получать информацию о записях в истории. Он призван заменить History API и
window.location, устраняя их недостатки. Подробнее об API можно узнать в полной спецификации на MDN.🎭 View Transitions (Типы переходов)
API для плавных анимаций между состояниями страницы теперь поддерживает типы переходов (
types). Это позволяет задавать разные анимации для разных обновлений контента (например, «переход вперед» и «переход назад»). Доступно свойство Document.activeViewTransition для получения активного перехода. Узнать больше можно в полном руководстве по View Transition API.Инструменты разработчика также получили улучшения для View Transitions: псевдоэлементы :
:view-transition теперь видны в DOM, а анимации — в панели анимаций.Iterator.concat() для объединения итераторов.-webkit-perspective для совместимости, новые единицы измерения (rcap, rch, rex, ric) на основе шрифта корневого элемента, свойства counter-* и quotes для ::marker.API: WebGPU теперь для всех macOS на Apple Silicon, Brotli-сжатие в CompressionStream, CSS-модули (импорт стилей как CSSStyleSheet), Service Workers как ES-модули.localhost.Firefox 147 — это не просто обновление, а серьезный шаг к более выразительной, производительной и простой в разработке веб-платформе. CSS Anchor Positioning обещает сократить объем пользовательского JavaScript для раскладки. Navigation API и View Transitions делают навигацию в SPA предсказуемой и кинематографичной. А WebGPU и другие API открывают двери для новых классов веб-приложений.
#Firefox #WebDev #CSS #JavaScript #AnchorPositioning #ViewTransitions #NavigationAPI #Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3