JavaScript задачи с собеседований
4.6K subscribers
665 photos
98 videos
9 files
429 links
Задачи, тесты и теоретические вопросы по JavaScript. Так же react, vue, angular, node.js

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
Ознакомьтесь с этими 5 советами по адаптивному веб-дизайну 👨‍💻
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Arc Time Slider

Это кастомный слайдер, разработанный с использованием веб-технологий HTML, SCSS и JS. Этот уникальный слайдер добавляет интересный и инновационный элемент управления на вашем веб-сайте.

🌐Ссылка на код (https://codepen.io/nicolasjesenberger/details/KKGJgWr)
Media is too big
VIEW IN TELEGRAM
Почему сайт узнаёт тебя после удаления cookies?

Удалил cookies, но сайт будто помнит тебя? Показываем, как экран, язык, шрифты и настройки складываются в цифровой отпечаток браузера.

#Приватность #Cookies #Fingerprinting

https://www.youtube.com/shorts/mg5gVeuw2Xs
🔐 В интернете сменили один из важнейших криптографических ключей. Всего второй раз в истории.

11 октября корневая зона DNS перешла с KSK-2017 на KSK-2024. Предыдущая смена была в 2018 году. Этот ключ служит отправной точкой цепочки доверия DNSSEC, которая позволяет проверять подлинность DNS-ответов.

Почему это важно: DNS-резолвер, который не доверяет новому ключу, может отклонять корректные ответы. Сайт или API работает, серверы исправны, но пользователи не могут до них добраться.

Большинству владельцев сайтов ничего менять не нужно. А тем, кто управляет резолвером с проверкой DNSSEC, ICANN рекомендует проверить наличие KSK-2024, Key Tag 38696 среди доверенных ключей. Полагаться только на автоматическое обновление не стоит.

https://www.icann.org/resources/pages/ksk-rollover-en
This media is not supported in your browser
VIEW IN TELEGRAM
Button with rotating gradient border

Кнопка с вращающейся градиентной рамкой – это эффектный веб-элемент, который был разработан и анимирован с использованием языков HTML и CSS. Этот элемент привносит интересное визуальное восприятие на веб-страницу и обращает на себя внимание пользователей благодаря своей креативной анимации.

🌐Ссылка на код (https://codepen.io/shuding/pen/gOBXxpe)
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Electric strings

Электрический паук, следующий за мышью. Написан на JavaScript.

https://codepen.io/Mertl/pen/dybBPWx
👍2
🌐 Умный DNS-резолвер Numa

Numa - это портативный DNS-резолвер, который работает из одного бинарного файла. Он блокирует рекламу, позволяет настраивать локальные сервисы и шифрует запросы с помощью ODoH, обеспечивая вашу конфиденциальность. Все функции встроены, без необходимости в облачных сервисах.

🚀 Основные моменты:
- Портативный, работает на любом устройстве.
- Блокировка рекламы и кэширование по умолчанию.
- Поддержка DNSSEC и DNS-over-TLS для шифрования.
- Автоматическое обнаружение устройств в локальной сети.
- Легкий в использовании интерфейс и настройка.

📌 GitHub: https://github.com/razvandimescu/numa
Критическая уязвимость в декодировщике Brotli, затрагивающая Node.JS, Bun, браузеры, HTTP-клиенты и другие проекты

В библиотеке с эталонной реализацией декодировщика для формата сжатия данных Brotli выявлена уязвимость (CVE-2026-111497, приводящая к переполнению буфера при обработке специально оформленных сжатых данных. По данным Google уязвимость может использоваться для удалённого выполнения кода при атаке на проекты, использующие официальную реализацию декодировщика Brotli. Среди подобных проектов Node.js, Bun, Envoy, Istio, web-браузеры, прокси-серверы, HTTP-клиенты и -серверы, архиваторы, прокси-серверы, UEFI-прошивки, просмотрщики JPEG XL, декодирующие контент библиотеки для Python, Ruby, Java, PHP и .NET и связанные с ними зависимости.

Полный текст:
https://opennet.ru/66537/
https://opennet.me/66537/
💡Шпаргалка по CSS
👍1
Найти ближайшее значение в бинарном дереве

Напишите функцию, которая принимает два аргумента — бинарное дерево и значение в виде числа, а возвращает ближайшее значение, найденное в бинарном дереве.

Node = { value: number | null, left: Node | null, right: Node | null }

Решение доступно на картинке. Зная свойство сбалансированного бинарного дерева, где слева находятся все значения нод меньше текущей, а справа равные или больше по значению, мы можем в лучшем случае откидывать каждый раз половину дерева.

В данном решении мы идем рекурсивным путём по нодам, записывая и сравнивая разницу со значением из аргумента. Если значение равно нужному, значит мы нашли нужную нам ноду, а иначе мы смотрим, является ли текущее значение ноды меньше или больше того, которое мы ищем. В зависимости от этого мы продолжаем рекурсивно спускаться в нужном нам направлении, обновляя разницу, до тех пор пока не упремся в конец ветки.
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Совет по CSS 💡

Мы часто используем кнопки действий, которые появляются при наведении, чтобы интерфейс выглядел чище.

Но пользователи, работающие только с клавиатурой или сенсорными экранами, не могут вызвать наведение, из-за чего такие кнопки становятся недоступными.

Вот как это исправить