Неявное численное преобразование примитивов. Если простым языком, то во время математических операций, операнды преобразовываются к числовым типам. Исключением в JS является сложение строковых значений, если их не получилось преобразовать к числовым. В этом случае, мы получим на выходе строку. С другим оператором, в большинстве случаем - NaN
console.log( +[] ); // 0
console.log( 1 / [] ); // Infinity, т.к. исходя из примера выше, +[] === 0, т.е. деление на 0
console.log( 'A' + [] ); // A
console.log( 'A' - [] ); // NaN
P.S. И по поводу
Infinity:
Глобальное свойство Infinity является числовым значением, представляющим бесконечность.