Напишите функцию, которая получает два IPv4-адреса и возвращает количество адресов между ними (включая первый, исключая последний).
Все входные данные будут действительными IPv4-адресами в виде строк. Последний адрес всегда будет больше первого.
Пример кода:
ipsBetween("150.0.0.0", "150.0.0.1") => 1
ipsBetween("10.0.0.0", "10.0.0.50") => 50
ipsBetween("10.11.12.13", "10.11.13.0") => 243
ipsBetween("50.0.0.0", "50.1.1.1") => 65793Решение задачи
function ipsBetween(start, end) {
// Функция для преобразования IP-адреса в число
function ipToNumber(ip) {
return ip.split('.').reduce((acc, octet) => (acc << 8) + parseInt(octet, 10), 0);
}
// Преобразование начального и конечного IP-адреса в числа
const startNum = ipToNumber(start);
const endNum = ipToNumber(end);
// Возвращаем количество адресов между ними
return endNum - startNum;
}
// Примеры использования
console.log(ipsBetween("150.0.0.0 ", " 150.0.0.1 ")); // => 1
console.log(ipsBetween("10.0.0.0 ", " 10.0.0.50 ")); // => 50
console.log(ipsBetween("10.11.12.13 ", " 10.11.13.0 ")); // => 243
console.log(ipsBetween("50.0.0.0 ", " 50.1.1.1 ")); // => 65793
Please open Telegram to view this post
VIEW IN TELEGRAM
Рассказываем о лучших подходах к созданию паттерна Singleton в JavaScript и TypeScript. Также обсудим его плюсы и возможные недостатки при использовании в проектах.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Пишите более безопасный CSS, используя
@property, позволяющий определять типы для пользовательских свойств. Узнайте, почему традиционные запасные значения могут не сработать и как функции @property повышают устойчивость определений пользовательских свойств.Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Таймлайн с возможностью раскрывать пункты. Сделан на SVG, CSS и JavaScript.
Открыть код
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье я расскажу об одном из стандартных API JavaScript, о котором, вы, возможно не слышали. Это AbortController.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Веб формы и поля ввода поддерживают множество дополнительных атрибутов, способных дать подсказку браузеру и улучшить пользовательский опыт заполнения форм в Интернете. Приложив совсем немного дополнительных усилий, можно сделать так, чтобы формы помогали, а не мешали.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В современной веб-разработке CSS сброс и нормализация — две важные техники, позволяющие добиться согласованности стилей в разных браузерах.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Индикатор прогресса прокрутки — довольно простая вещь, которую можно создать с помощью анимации, основанной на прокрутке в
scroll()-стиле. Но мы создадим индикаторы для каждого раздела страницы, используя view()-стиль.Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В современной разработке на 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