Годные заметки, новости, видео и интересные статьи для Frontend разработчиков.
:is(), который позволяет значительно сократить длинные записи селекторов. По сути он просто принимает список селекторов для выбора элементов HTML.
Несколько примеров:
button:is(:hover, :focus) {
background: green;
}
Меняет фон для кнопки если она имеет состояние focus или hover.
:is(thead, tfoot) tr :is(th, td) {
background: red;
}
Выбирает все элементы th и td внутри хедера и футера таблицы.
:is(ul, ol, menu) > :is(ul, ol, menu) {
background: yellow;
}
В данном примере мы выбираем все списки которые уже находятся в списках.
Собственно вот такая довольно полезная штуковина. Поддерживается на данный момент всеми основными браузерами, вот ссылка на caniuse. Удачи в экспериментах!
#js #shortread~ выполняет ~N => -(N+1).
Значение этого выражения равно “0” только тогда, когда N == -1.
Поместив ~ перед функцией indexOf(...), мы можем выполнить булевую проверку наличия элемента в String или в Array без приравнивания к -1.
Теперь наглядно:
const str = 'Alesha Popovich';
❌ if (str.indexOf('Alesha') !== -1) return true;
✅ if (~str.indexOf('Alesha')) return true;
Как мы видим такая конструкция чуть короче
❗P.S. Я знаю, про метод .includes(), но indexOf() встречается еще пока довольно часто что-бы про него забыть