В двух словах
!!value — быстрый способ привести значение к булеву типу (true / false) через двойное логическое отрицание.
Как работает
!value — приводит к boolean и инвертирует.
- Второй
! — инвертирует обратно → получили «честный» boolean исходного truthiness.
!!"hello";
!!"";
!!0;
!!1;
!!null;
!!{};
!![];
Эквивалент явнее: Boolean(value).
Когда используют
- Нормализация флагов перед API, которое ждёт именно
boolean.
- Краткая запись в выражениях.
const hasToken = !!localStorage.getItem("token");
Осторожно
!! не проверяет «есть ли осмысленные данные»: !![] и !!{} — true. Для массивов чаще смотрят .length, для объектов — ключи / явную проверку.
Итог: !! — компактный cast к boolean по правилам truthy/falsy; читаемее часто Boolean(...).