1. Что такое debounce?
Debounce — это техника, позволяющая ограничить частоту выполнения функции, предотвращая её вызовы на каждом событии. Это полезно при работе с часто происходящими событиями, такими как ввод текста или прокрутка страницы.
let timeout;
function debounce(func, delay) {
return function() {
clearTimeout(timeout);
timeout = setTimeout(func, delay);
};
}
2. Как работает debounce?
Debounce задерживает выполнение функции, пока событие не прекратится на заданный промежуток времени. Это особенно полезно для предотвращения частых запросов на сервер, например, в поле поиска.
const handleInput = debounce(function() {
console.log('Ввод обработан');
}, 500);
document.getElementById('search').addEventListener('input', handleInput);
3. Использование debounce для событий input
Когда пользователь вводит текст в поле, можно использовать debounce, чтобы отправить запрос на сервер только после того, как пользователь перестанет вводить текст на 500 миллисекунд.
document.getElementById('search').addEventListener('input', debounce(function(e) {
console.log('Поиск для:', e.target.value);
}, 500));
4. Преимущества использования debounce
• Снижается количество выполняемых функций.
• Улучшает производительность, избегая лишних вычислений.
• Эффективен для поисковых форм, автодополнения и других интерактивных элементов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍14
Тег <sub> в HTML используется для создания текста, который отображается в виде подстрочного (или нижнего) индекса.
Этот тег часто используется для математических выражений (например, химических формул) или для обозначения сносок в тексте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍49🔥12👎2
This media is not supported in your browser
VIEW IN TELEGRAM
• Ctrl + Shift + K — Удаляет текущую строку целиком.
• Shift + Alt + F — отформатировать листинг. Быстро выровняет код, чтобы он стал более читаемым, понятным и красивым.
• Ctrl + D — множественное редактирование. Изменит одинаковый код сразу в нескольких местах.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍16🤝5
Ошибки при сравнении объектов
В JavaScript при использовании операторов == или === сравниваются ссылки на объекты, а не их содержимое.
Потому что каждый объект в памяти уникален, даже если их свойства идентичны.
Чтобы избежать этого, для сравнения содержимого используем глубокое сравнение (например, с помощью JSON.stringify).
Ещё в JavaScript NaN никогда не равен даже самому себе, что может создать путаницу.
Используем isNaN() для проверки значений.
📣 Code Ready | #практика
В JavaScript при использовании операторов == или === сравниваются ссылки на объекты, а не их содержимое.
const obj1 = { a: 1 };
const obj2 = { a: 1 };
console.log(obj1 == obj2); // false
console.log(obj1 === obj2); // false
Потому что каждый объект в памяти уникален, даже если их свойства идентичны.
Чтобы избежать этого, для сравнения содержимого используем глубокое сравнение (например, с помощью JSON.stringify).
console.log(JSON.stringify(obj1) === JSON.stringify(obj2)); // true
Ещё в JavaScript NaN никогда не равен даже самому себе, что может создать путаницу.
const obj = { value: NaN };
console.log(obj.value === NaN); // false
Используем isNaN() для проверки значений.
console.log(isNaN(obj.value)); // true
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
Знаете про классный ресурс для практики — DevChallenges? А я вам расскажу про него!
Это платформа, где можно решать реальные задачи веб-разработки с уже подготовленными дизайнами. Отличный способ освоить работу с интерфейсами, версткой и JavaScript.
📌 Ссылочка: devchallenges.io
📣 Code Ready | #ресурсы
Это платформа, где можно решать реальные задачи веб-разработки с уже подготовленными дизайнами. Отличный способ освоить работу с интерфейсами, версткой и JavaScript.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Свойство aspect-ratio в CSS позволяет задавать соотношение ширины к высоте для элемента, чтобы поддерживать его пропорции независимо от содержимого и размера контейнера.
Оно принимает значение в формате width / height:
• 1 / 1 — квадратный элемент.
• 16 / 9 — широкоэкранный элемент, как для видео.
• 4 / 3 — соотношение для стандартного экрана.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Нашел для вас лучший ресурс для изучения JavaScript
Это подробный учебник для изучения JS с нуля до продвинутого уровня. Здесь вы найдете объяснения сложных тем простым языком, интерактивные задачи и упражнения, чтобы сразу закрепиться на практике.
📌 Ссылочка: learn.javascript.ru
📣 Code Ready | #ресурсы
Это подробный учебник для изучения JS с нуля до продвинутого уровня. Здесь вы найдете объяснения сложных тем простым языком, интерактивные задачи и упражнения, чтобы сразу закрепиться на практике.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20👎6🔥4😁4
В этом посте я собрал для вас лучшие плагины, которые упростят и ускорят процесс вёрстки. Они помогут автоматически форматировать код, подбирать цвета, оптимизировать изображения и многое другое.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28🔥16🤝2
Привет! Сегодня разберем, как создать анимированный голографический фон с плавным переходом цветов, который придаст вашему сайту стильный и динамичный вид.
Мы используем только CSS, без дополнительных картинок или текстур, чтобы добиться эффекта плавного цветового сдвига.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22👎1🔥1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Это сайт, где можно найти реальные проекты, чтобы прокачать свои навыки в разработке.
Здесь представлены разнообразные задачи с реальными требованиями, которые помогут вам улучшить навыки работы с HTML, CSS, JavaScript и другими технологиями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥5
Опасности работы с пользовательским вводом
Работа с HTML-формами и пользовательским вводом — важная часть фронтенд-разработки, но именно здесь чаще всего возникают баги и уязвимости.
Рассмотрим две проблемы: утечка данных и некорректная обработка событий.
Неэкранированные данные в HTML — при отображении данных пользователя напрямую в HTML можно случайно открыть двери для XSS-атак, вот пример:
Вместо
Теперь любой ввод будет отображаться как текст, а не как исполняемый код!
Двойное срабатывание событий - ошибки часто случаются, если обработчики событий добавляются несколько раз, что приводит к неожиданным результатам:
Теперь на каждое нажатие кнопки будут выводиться две строки вместо одной
Для решения проблемы, перед добавлением нового обработчика удаляйте старый:
🔥 Такие простые меры позволят сделать ваш фронтенд-код безопасным и предсказуемым
📣 Code Ready | #практика
Работа с HTML-формами и пользовательским вводом — важная часть фронтенд-разработки, но именно здесь чаще всего возникают баги и уязвимости.
Рассмотрим две проблемы: утечка данных и некорректная обработка событий.
Неэкранированные данные в HTML — при отображении данных пользователя напрямую в HTML можно случайно открыть двери для XSS-атак, вот пример:
<div id="output"></div>
<script>
const userInput = "<script>alert('XSS')</script>";
document.getElementById("output").innerHTML = userInput;
</script>
Вместо
innerHTML
используйте безопасные методы, такие как textContent
document.getElementById("output").textContent = userInput;
Теперь любой ввод будет отображаться как текст, а не как исполняемый код!
Двойное срабатывание событий - ошибки часто случаются, если обработчики событий добавляются несколько раз, что приводит к неожиданным результатам:
const button = document.querySelector("button");
button.addEventListener("click", () => console.log("Clicked!"));
// Где-то в коде:
button.addEventListener("click", () => console.log("Clicked again!"));
Теперь на каждое нажатие кнопки будут выводиться две строки вместо одной
Для решения проблемы, перед добавлением нового обработчика удаляйте старый:
button.onclick = () => console.log("Clicked!");
🔥 Такие простые меры позволят сделать ваш фронтенд-код безопасным и предсказуемым
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍8🤝2
В этом интересном курсе будем рассматривать базу для работы с технологией HTML, всё самое необходимое и только то, что применяется каждый день любым профессионалом в сфере веб-разработки!
Ссылочка на видео: YouTube🖤
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6😁5