Найти в Дзене

​​А вы используете 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, а второй восклицательный знак переворачивает результат первого вычисления.

Такой интересный способ позволяет нам всегда получать булевый результат. Любое значение будет преобразовано в булевый тип в соответствии с правилами приведения типов.

​​А вы используете Double Bang или Оператор двойной восклицательный знак (!!)?  Сначала давай разберем что из себя представляет простой оператор восклицательный знак (!).
Около минуты