171 подписчик
А вы используете Double Bang или Оператор двойной восклицательный знак (!!)?
Сначала давай разберем что из себя представляет простой оператор восклицательный знак (!). Например, если выражения равны между собой, а мы хотим проверить что они не равны:
console.log('string' === 'string'); // => true
console.log('string' !== 'string'); // => false
Таким образом мы просто инвертировали проверку. То же получим если поставим восклицательный знак перед выражением:
const myString = "string";
console.log(!myString) // => false
Здесь получаем нелогичный, на первый взгляд, результат, так как "не string", теоретически может быть чем угодно. Но javascript строго соблюдает правила, и сначала приводит "string" к true, а затем инвертирует его в false.
Теперь будет проще понять что делает оператор двойной восклицательный знак:
const checkIsTrue = (someVar) => {
return !!someVar;
};
Интерпретатор сначала вычисляет !someVar, а второй восклицательный знак переворачивает результат первого вычисления.
Такой интересный способ позволяет нам всегда получать булевый результат. Любое значение будет преобразовано в булевый тип в соответствии с правилами приведения типов.
Около минуты
4 июля 2024