JavaScript заметки
Ir al canal en Telegram
Регулярные заметки по практическому JavaScript. Обучащию посты позволят прокачать навыки во Frontend-разработке. Можно почитать пока компилируется проект :) Сотрудничество: @noname_media Канал на бирже: telega.in/channels/notesjs/card?r=Wj7h1mbl
Mostrar más7 368
Suscriptores
-124 horas
-167 días
-5730 días
Archivo de publicaciones
7 368
Нахождение дня в году
Еще одна очень полезная функция JavaScript, относящаяся к Датам/Календарю. Она в основном предоставляет вам количество дней в году. Например, 6 февраля получается 37 день из 365 дней в году.
const dayOfYear = (date) => Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24); dayOfYear(new Date()); // Result: 272#функции
7 368
Проверка, поддерживает ли текущий пользователь сенсорные события
const touchSupported = () => {
('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch);
}
console.log(touchSupported());
// Result: will return true if touch events are supported, false if not
#функции7 368
Получение среднего значения массива чисел
Редуктор JavaScript позволяет вычислять среднее значение массивов в одной строке. Метод Reduce очень полезен при написании однострочных решений для ряда проблем, таких как нахождение суммы или максимума в массиве чисел.
const average = arr => arr.reduce((a, b) => a + b) / arr.length; average([21, 56, 23, 122, 67]) //57.8#функции
7 368
Готовишься к собеседованию на frontend разработчика?
Канал, где мы регулярно публикуем тесты и задания для практики - @interview_masters. Также у нас есть удобное приложение в котором можно отточить свои навыки. Присоединяйся к нам уже сейчас - @interview_masters!
7 368
Получение параметров запроса из URL-адреса
Очень полезная функция, когда вы имеете дело с параметрами запроса в URL-адресе. Вы можете легко получить параметры запроса из него, передав URL-адрес в качестве аргумента функции.
const getParameters = (URL) => JSON.parse('{"' + decodeURI(URL.split("?")[1]).replace(/"/g, '\"').replace(/&/g, '","').replace(/=/g, '":"') +'"}');
getParameters("https://www.google.de/search?q=cars&start=40");
// Result: { q: 'cars', start: '40' }
#функции7 368
Обнаружение Dark Mode
Узнайте, находится ли устройство пользователя в dark mode, используя следующий код.
const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
console.log(isDarkMode) // Result: True or False
#функции7 368
Frontend-разработчики создали каналы, в которых ежедневно выходят полезные посты.
Специалист по JavaScript - образовательный канал по JS человеческим языком, с повседневными практическими заметками по языку.
Сеньор Помидор - канал для frontend программистов, с примерами лучших решений на HTML|CSS|JS.
Figma - Templates - канал, где собраны примеры реальных макетов в Figma, которые заказчики присылают на вёрстку.
7 368
Перемешивание массива
Вы можете использовать следующий код для перемешивания массива. Он использует методы sort и random.
const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random()); console.log(shuffleArray([1, 2, 3, 4])); // Result: [ 1, 4, 3, 2 ]#функции
7 368
Округление дробей до определенного количества десятичных знаков
Когда вы имеете дело с суммами, расчеты в десятичных дробях очень важны и должны быть точными и надежными. Использование округления десятичных дробей до фиксированного числа десятичных знаков — непростая задача в JavaScript. Встроенный метод
toFixed() может легко выполнить это преобразование, но в некоторых случаях он дает странные результаты из-за того, как работает арифметика с плавающей запятой.
Чтобы избежать этого странного поведения, вы можете использовать Math.round(), чтобы округлить дробь до заданного количества десятичных знаков.
// Default Javascript function toFixed behaviour Number((1.005).toFixed(2)) //outputs 1 instead of 1.01 Number((1.555).toFixed(2)) //outputs 1.55 instead of 1.56 const round = (n, d) => Number(Math.round(n + "e" + d) + "e-" + d); round(1.005, 2) //1.01 round(1.555, 2) //1.56#функции
7 368
Использование заглавной буквы в строке
Поскольку JavaScript не предоставляет встроенного метода преобразования заглавной буквы, с помощью этой однострочной функции вы можете использовать в строке заглавную букву.
const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1);
capitalize("i hope you like my article.");
// I hope you like my article.
#функции7 368
Переворот строки
Вы можете изменять строку с помощью split, join и reverse методов.
const stringReverse = str => str.split("").reverse().join("");
stringReverse('elcitra ym ekil uoy epoh i');
// Result: i hope you like my article
#функции7 368
Переключение элемента (показать/скрыть)
Вы можете легко переключаться между отображением /скрытием элемента с помощью этого однострочного метода, используя свойство CSS display.
const toggleElementDisplay = element => element.style.display = (element.style.display === "none" ? "block" : "none"); toggleElementDisplay(document.body) // Result: Page body should be invisible, if it was present before and on executing command again it should be toggled#функции
7 368
Удаление HTML из текста
Очень удобная однострочная функция JavaScript, которая также важна по соображениям безопасности. Пользователи могут отправлять входные значения на основе тегов. Принимая вводимые пользователем данные, вы можете удалить любые элементы HTML в тексте, введенном пользователем с помощью DOMParser.
const stripHtml = html => (new DOMParser().parseFromString(html, 'text/html')).body.textContent || '';
stripHtml('<h1>Hello World!!!</h1>');
// Result: Hello World!!!
#функции7 368
Узнать время из даты
Вы можете использовать метод
.toTimeString() и получить время из указанной нами даты или получить текущее время.
const timeFromDate = date => date.toTimeString().slice(0, 8); console.log(timeFromDate(new Date(2021, 0, 10, 17, 30, 0))); // Result: "17:30:00" console.log(timeFromDate(new Date())); // Result: will log the current time#функции
7 368
Проверка, использует ли пользователь устройство Apple
Как и во многих проектах, нам необходимо реализовать функции на основе устройств. Вы можете использовать эту функцию, чтобы убедиться, что пользователь использует устройство Apple или нет.
const isAppleDevice = /Mac|iPod|iPhone|iPad/.test(navigator.platform);
console.log(isAppleDevice);
// Result: will return true if user is on an Apple device
#фунуции7 368
Срочно! Нужны фронтендеры и программисты разных уровней и новички
Для новичков:
- Бесплатные обучения
- Стажировка
- Практикумы
- Бесплатные курсы
Для опытных:
- Вакансии junior
- Вакансии junior+
- Вакансии middle
- Вакансии senior
- Вакансии Team Lead
- Другие вакансии
7 368
Преобразование температуры по Фаренгейту/Цельсию
Если вы имеете дело с температурой в своем проекте, тогда эти две функции JavaScript очень полезны. Они помогут вам преобразовать градусы Фаренгейта в градусы Цельсия и наоборот.
const celsiusToFahrenheit = (celsius) => celsius * 9/5 + 32; const fahrenheitToCelsius = (fahrenheit) => (fahrenheit - 32) * 5/9; // Examples celsiusToFahrenheit(15); // 59 celsiusToFahrenheit(0); // 32 celsiusToFahrenheit(-20); // -4 fahrenheitToCelsius(59); // 15 fahrenheitToCelsius(32); // 0#функции
7 368
Проверка, является ли указанный день будним днем
Используя эту функцию, вы сможете проверить, является ли дата, которую вы передаете в качестве аргумента, будним или выходным днем.
const isWeekday = (date) => date.getDay() % 6 !== 0 console.log(isWeekday(new Date(2021, 0, 11))) // Result: true (Monday) console.log(isWeekday(new Date(2021, 0, 10))) // Result: false (Sunday)#функции
7 368
Генерация случайного шестнадцатеричного числа
С помощью этой функции вы можете генерировать случайные шестнадцатеричные числа, что очень полезно для внешних проектов.
const randomHex = () => #${Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, "0")};
console.log(randomHex());
// Result: #92b008
#функции7 368
Нахождение количества дней между двумя датами
Следующая функция — очень полезная однострочная функция, когда вы работаете с календарем / датами в JavaScript. Нахождение количества дней между двумя заданными датами, используя следующий код.
const dayDif = (date1, date2) => Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000)
dayDif(new Date("2020-10-21"), new Date("2021-10-22"))
// Result: 366
#функции