Оператор !
- это булево отрицание. И он приводит свой аргумент к типу boolean. Автор не открыл Америку, и это используется. Но использовать нужно с умом.
Значения приводимые к false
- это undefined
, null
, ''
(пустая строка), 0
, 0n
(bigint 0), NaN
.
Соответственно, когда у нас есть например строка или undefined или например число или undefined - такая проверка на undefined может быть небезопасна, так как она отсечет еще и пустую строку, 0 и NaN.
!!
- это всего лишь 2 идущих подряд оператора !
, это такое популярное сокращение для быстрого каста к boolean.
Еще автор статьи предлагает использовать !!!
, но это бессмысленно, так как тройное отрицание даст тоже самое что и одинарное.