Оператор ~ (побитовое не)
Мы на практике не особо часто юзаем побитовые операторы, а некоторые из нас возможно только сейчас узнали что такие вообще бывают, но конкретно для этого оператора есть сценарий для использования в повседневных задачах.
Оказывается, при использовании с числом, оператор~ выполняет ~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() встречается еще пока довольно часто что-бы про него забыть