It basically forces the value that follows to a strict true or false value. The first ! inverts the value and coerces it to a true/false, the second switches it BACK to the original value’s truthiness or falsiness.
There is a ! operator, Boolean NOT. !! is literally just two boolean NOT operators. It’s normally used as a short version of Boolean(someValue), ie safely coercing some value to true/false: