В современной разработке на JavaScript для асинхронной работы и обработки ошибок часто применяются
try-catch и async-await, что утяжеляет код. Новый оператор ?= упрощает обработку ошибок и улучшает читаемость. В статье рассматриваются его работа, особенности и преимущества.Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Завершите решение так, чтобы оно возвращало значение true, если переданный первый аргумент (строка) заканчивается 2-м аргументом (также строкой).
Пример кода:
solution('abc', 'bc') // returns true
solution('abc', 'd') // returns falseРешение задачи
function solution(str, ending) {
return ending === '' || str.slice(-ending.length) === ending;
}
// Примеры использования
console.log(solution('abc', 'bc')); // возвращает true
console.log(solution('abc', 'd')); // возвращает false
console.log(solution('abc', '')); // возвращает true
Please open Telegram to view this post
VIEW IN TELEGRAM
Представляем семь HTML-приемов, которые помогут вам создавать более удобные и привлекательные сайты, улучшая взаимодействие с пользователями.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Кнопка с анимированным эффектом при наведении. Сделана на CSS, SVG и JavaScript.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
Часто, спеша завершить проект, мы создаём элементы интерфейса, не думая о доступности. Однако небольшие изменения могут значительно улучшить опыт пользователей. Доступность — это не сложная задача, а способ сделать продукт удобным для всех, независимо от их навыков и устройств.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Давайте анимируем CSS переменные! Это мощный способ применения CSS анимации, которая в противном случае была бы утомительной или непрактичной.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
• Bootstrap или свое решение
• Что нас ждет в Next.js 15: обзор заявленных новинок
• Valkey: миллион RPS c напёрстком дёгтя
• Откройте для себя весь потенциал AbortController
• Посмотрим на never с разных сторон?
Please open Telegram to view this post
VIEW IN TELEGRAM
Иногда, спеша уложиться в сроки, мы не задумываемся о доступности. Но пара небольших изменений может значительно улучшить сайт для всех пользователей, независимо от их возможностей и устройств.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Если у вас есть аккаунт на Vercel, вы, наверное, замечали, как плавно фон ссылок в панели навигации перемещается, следуя за курсором мыши. Такого эффекта несложно добиться с помощью CSS и нескольких строчек JS. Однако, интереса ради, я решил попробовать добиться похожего эффекта на чистом CSS.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Помните HTML-элемент marquee? Он устарел, поэтому вряд ли стоит его использовать, когда понадобится что-то вроде горизонтальной автопрокрутки. Вот тут-то и приходит на помощь CSS, потому что в нём есть все необходимые инструменты для реализации этой функции.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию deepClone, которая создает глубокую копию объекта. Глубокая копия означает, что вложенные объекты и массивы также должны быть скопированы, а не переданы по ссылке. Функция должна корректно работать с вложенными структурами данных и массивами.
Пример кода:
const obj = {
name: "Alice",
info: { age: 25, hobbies: ["reading", "swimming"] }
};
const copy = deepClone(obj);
console.log(copy); // { name: "Alice", info: { age: 25, hobbies: ["reading", "swimming"] } }
copy.info.age = 30;
console.log(obj.info.age); // 25 (изменение не повлияло на оригинальный объект)Решение задачи
function deepClone(obj) {
if (obj === null || typeof obj !== 'object') {
return obj;
}
if (Array.isArray(obj)) {
returnobj.map (deepClone);
}
const clone = {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
clone[key] = deepClone(obj[key]);
}
}
return clone;
}
// Примеры использования
const obj = {
name: "Alice",
info: { age: 25, hobbies: ["reading", "swimming"] }
};
const copy = deepClone(obj);
console.log(copy); // { name: "Alice", info: { age: 25, hobbies: ["reading", "swimming"] } }
copy.info.age = 30;
console.log(obj.info.age); // 25 (изменение не повлияло на оригинальный объект
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье расскажем, как Supabase — бесплатный аналог Google Firebase — помогает разработчикам быстро создавать приложения и сайты. Узнаете, как работать с базой данных, аутентификацией, хранением файлов и реальным временем, без необходимости управлять сервером.
Читать...
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
Какой цвет будет у текста в элементе
<p>, если у родителя <div> установлен цвет color: red;, а у самого элемента <p> указано свойство color: inherit;?<div style="color: red;">
<p style="color: inherit;">Текст</p>
</div>
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня поговорим о том, как использовать
handleEvent() для обработки нескольких типов событий.Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой серии статей я рассказываю о Convex — новом открытом и бесплатном решении BaaS (Backend as a Service — бэкенд как услуга), которое выглядит очень многообещающе и быстро набирает популярность среди разработчиков.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Красивая анимация горения страницы при скролле. Сделана на CSS и JavaScript.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM