Предположим, у вас есть выражение, которое дает вам результат.
Вы хотите, чтобы этот результат был логическим. Либо истина , либо ложь .
Не строка, 0, пустая строка, неопределенная, NaN или что-то еще. верно или ложь .
Тот !! оператор делает это.
А на самом деле это два оператора отрицания один за другим. Там нет !! оператор в JavaScript. Но есть ! .
Сначала он отрицает результат выражения, а затем снова отрицает его. Таким образом, если у вас было ненулевое число, строка, объект, массив или что-нибудь правдивое, вы получите true обратно.
В противном случае вы получите false .
Оригинал: “https://flaviocopes.com/javascript-double-negation-operator/”