CODEGURU

Что делает оператор двойного отрицания `!!` в Javascript?

Если вы работаете в команде, то, наверняка, очень часто вам попадается такое выражение: !!. Многие начинающие разработчики думают, что это какой-то неизвестный им оператор и впадают в ступор.

Но не стоит пугаться. Вы ничего не пропустили. Это не новый оператор, это всего лишь два оператора !, просто они записаны подряд. Что это даёт? Тут тоже всё довольно просто. Допустим у вас есть функция, которая возвращает какой-то результат: строку, число, объект и т.д. А вам необходимо получить от этой функции true или false. Вот два записанных подряд оператора ! и делают именно это. Если функция вернёт строку, отличное от 0 число, объект, массив — в общем любое правдивое значение, то выражение !! превратит его в true, в противном случае вы получите false.