В чём разница между! и !!?
В JavaScript оператор "!"" (логическое НЕ) используется для инвертирования значения выражения, то есть, если выражение истинно, то "!" сделает его ложным, и наоборот. Например: var x = 5; console.log(!x); // false, так как 5 - истина, а ! инвертирует её в ложь Однако, если применить оператор "!" дважды (последовательно), то получим оператор "!!" (двойное отрицание). ... Читать далее