да тут все просто, в JS если интерпретатор ожидает увидеть определенный тип данных, он автоматом конвертирует булево в строку или строку в число, или наоборот
вот вам примеры
преобразование типа строки
к числовому типу
console.log(+"555");
console.log("555"*1);
console.log(+true);
console.log(+false);
к строке
console.log(555+"");
к булю
console.log(!!5);
console.log(!!0);
console.log(!5);
console.log(!0);