Во-первых: не
Math.round(((b ** 2) - 4 * a * c) ** 1/2);
а
((b ** 2) - 4 * a * c) ** (1 / 2);
.
Во-вторых: тут какой-то бред описан:
if (b => 1, c => 1) {
b = "+ " + b
c = "+ " + c
}
В условии Вы создаете 2 функции, причём проверите только последнюю. Меняете на
let stringifiedB = b >= 0 ? `+ ${b}` : `- ${Math.abs(b)}`;
let stringifiedC = c >= 0 ? `+ ${c}` : `- ${Math.abs(c)}`;
console.log(`${a}х² ${stringifiedB}x ${stringifiedC} = 0`);
На счет знака запятой в различных условиях, будет использован только самый последний.
if (false, true) {
console.log(1);
} else {
console.log(2);
}
// 1
if (false, true, false) {
console.log(1);
} else {
console.log(2);
}
// 2
А функция в условии всегда будет выполнять
if
-блок.