Функция кэширует результат заданной функции и использует аргументы в качестве ключа для извлечения результата при повторном вызове. Отлично подходит для функций со сложными вычислениями и однозначным результатом.
На изображении, как пример, в кеш закидывается функция Фибоначчи и засекается время выполнения каждого вызова. По результату видно, что повторный вызов практически нулевой по времени.
Ранее мы разбирали функции:
debounce, throttle, once
#js #middle #custom
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Помимо глобальной и локальной областей видимости, существует также блочная область видимости. Переменные, объявленные с помощью ключевого слова
let или const, ограничиваются ближайшими фигурными скобками { }.Статья на английском
#js #junior #engine
Please open Telegram to view this post
VIEW IN TELEGRAM
Web Storage – это интерфейс взаимодействия с хранилищем. Есть две реализации этого API: Local Storage и Session Storage.
Оба способа имеют идентичный API и ограничения, основное различие - это время хранения данных.
Если Session Storage ограничивается жизнью сессии, то Local Storage, в теории, является бессрочным хранилищем данных. Хотя данные и должны храниться бессрочно, браузеры все равно вводят свои ограничения.
Так, например, при переполнении хранилища оно полностью очищается. А Safari очищает Local Storage если к нему не обращались в течение семи дней. То есть если пользователь не посещал ваш сайт больше 7 дней, то данные хранящиеся в нем будут удалены.
- Максимальный объем хранимых данных — 5 Мб
- localStorage всегда хранится в строковом формате UTF-16.
- Данные localStorage зависят от протокола браузера и веб-сайта. (Например, они отличаются в HTTP и HTTPS)
Статья на английском
#js #junior #base #api
Please open Telegram to view this post
VIEW IN TELEGRAM
Метод позволяет определить входит ли значение в массив. Кроме этого, вторым аргументом метод позволяет задать смещение при поиске совпадения.
Достаточно часто используется. Внутри метода обычный цикл, который пробегается по всем элементам и сравнивает со значением, которое было передано.
Ссылка на документацию
#js #junior #array
Please open Telegram to view this post
VIEW IN TELEGRAM
Довольно сложная на первый взгляд функция. Каррирование используется при работе с функциями, принимающими несколько аргументов. Если не все аргументы были предоставлены, она возвращает новую функцию, которую можно вызывать с дополнительными аргументами. Когда все аргументы переданы, вызывается исходная функция, и возвращается ее результат.
Честно говоря, я всего пару раз видел применение подобной конструкции в рабочих проектах, поэтому просто знайте, что такое есть)
Ранее мы разбирали функции:
debounce throttle once memoize
#js #middle #custom
Please open Telegram to view this post
VIEW IN TELEGRAM
Закрутились, завертелись и пропустили анонс svelte 4. 3 версия вышла аж 4 года назад.
Из нового:
- Улучшили производительность
- Обновили документацию
- Улучшили средства разработки
Сами в блоге они пишут, что данная версия это лишь почва для svelte 5. Вот там они будут переписывать компилятор, улучшать среду выполнения (runtime) и вычищать от устаревших версий либ. Так что ждем новостей.
#js #svelte #lib #news
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Почему мы можем использовать встроенные методы: .split(), .join(), .length и т.д. для наших строк, массивов или объектов?
Как ведут себя функции конструкторы и какой у них синтаксический сахар (спойлер, это классы).
Статья на английском
#js #junior #engine
Please open Telegram to view this post
VIEW IN TELEGRAM
Если нам нужны только значения свойств объекта - используем Object.values()
Документация
#js #junior #base #object
Please open Telegram to view this post
VIEW IN TELEGRAM
В конце этого года будет прекращена поддержка vue 2 и nuxt 2.
Автор расписал список вещей, которые нужно знать о nuxt 3. Уверен, что кто работает с данным фреймворком большую часть этого знает, но пункты расписаны довольно подробно и интересно. Все, кто работает с vue и nuxt - рекомендую
Статья на английском
#js #vue #nuxt
Please open Telegram to view this post
VIEW IN TELEGRAM
Вчера состоялся релиз новой версии prettier.
Из изменений:
- Переход на модули ECMAScript.
- Исправлено форматирование иероглифов.
- trailingComma по умолчанию теперь all
- Api для плагинов теперь асинхронные
- Убрали поддержку комментариев Flow.
и т.д.
Ссылка на релиз
#js #news
Please open Telegram to view this post
VIEW IN TELEGRAM
23 июня вышла новая версия Nuxt 3.6 (опять проморгали)
Из изменений:
- Новый индикатор загрузки SPA
- Улучшена производительность
- Улучшили встраивание стилей, работу с анимацией
- Добавили автоматическое обнаружение статических пресетов (прокачали nuxt generate)
- Повысили безопасность типов
- Nitro 2.5
- Полностью статические серверные компоненты
Ссылка на релиз
#js #nuxt #news
Please open Telegram to view this post
VIEW IN TELEGRAM
Новая версия
- Экспериментальная поддержка Lightning CSS
- Esbuild 0.18
- Create-vite для Solid и Qwik
- Корейский перевод документации
и т.д.
Ссылка на релиз
#js #news #vite
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье автор описывает проекты, в которых можно использоваться данные API. Приводит список методов и свойств, а так же делится советами.
Методы и свойства:
Статья на английском
#js #core
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Генераторы отличаются от обычных функций тем, что могут приостанавливать своё выполнение, возвращать промежуточный результат и далее возобновлять его позже, в произвольный момент времени.
У функции генератора есть специальный синтаксис function*
Статья на английском
#js #core #middle
Please open Telegram to view this post
VIEW IN TELEGRAM
Советы, приведенные в этой статье, помогут в полной мере использовать проверку типов в TypeScript и повысить качество кода
- Используйте операторы объединения ( | и & )
- Разделяйте типы на несколько видов, чтобы избежать необязательных свойств (в статье есть пример)
- С помощью предикатов можно создавать проверки принадлежности значения к определенному типу
- Используйте перечисления (enum)
- Будьте аккуратней с дженериками
Статья на английском
#js #ts #middle
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Функция Pipe используется для передачи результата каждой функции по цепочке. Она аналогична оператору pipe в Unix и применяет все функции слева направо, используя функцию reduce():
Рассмотрим на примере связи трех функций:
- Добавить префикс к строке
- Добавить суффикс к строке
- Преобразовать строку в верхний регистр
Ранее мы разбирали функции:
debounce throttle once memoize curry
#js #middle #custom
Please open Telegram to view this post
VIEW IN TELEGRAM
Зачем нужны промисы, как они работают "под капотом" и как писать их наиболее современным способом?
Статья на английском
#js #core #junior
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM