Говнокод или нет?
Код г-но неидеален, и вот, почему:см. комменты в кодеlet a = prompt("Enter a value", 10); // a, b, c дальше не меняются
let b = prompt("Enter b value", 10); // поэтому можно
let c = prompt("Enter c value", 10);  // const
let result;
let discr = (b * b ) - 4 * a * c;
let sqrtDiscr = Math.sqrt(discr); // при отрицат. discr здесь NaN
if(a === 0 && b === 0 && c === 0) { // проверяем уже после вычислений
  throw new Error("The values must be bigger than 0");
} else if(discr < 0 ){ // проверяем уже после вычисления sqrtDiscr
  throw new Error("This Equation have not solution");
} else if(discr === 0 ){
  console.log("This Equation have only 1 solution")
  result = (-b) / (2 * a);
} else if (discr > 0){
  console.log("This Equation have 2 solution");
  result = (- b + sqrtDiscr) / (2 * a) + ";     " + (- b - sqrtDiscr) / (2 * a);
}

console.log(result);
По функциям разбивать есть смысл если из нескольких мест идёт обращение, код повторяется более двух раз. Тут можно в двух последних случаях считать два корня одной формулой, и при нулевом дискриминанте брать только одно из двух равных значений. Но это излишняя, дурная, вредная переоптимизация.
Ещё вы не проверили случай, когда a === 0: у вас будет деление на ноль.
Я бы сделал как-то так:<button onclick="go();">Пуск</button>
<script>
	function go () {
		let t= " in ax2 + bx + c",
			a = prompt("Enter a value"+t, 10),
			b = prompt("Enter b value"+t, 10),
			c = prompt("Enter c value"+t, 10),
			result;
		
		if(a === 0 && b === 0 && c === 0){
			return alert ("The values must be bigger than 0");
		}

		var discr = (b * b ) - 4 * a * c,
			sqrtDiscr = Math.sqrt(discr);
		
		if(discr < 0 ){
			return alert ("This Equation have not solution");
		}

		

		if(discr === 0 ){
		console.log("This Equation have only 1 solution")
		result = (-b) / (2 * a);
		} else {
		console.log("This Equation have 2 solution");
		result = ((- b + sqrtDiscr) / (2 * a)).toFixed(2) + "; \n" + ((- b - sqrtDiscr) / (2 * a)).toFixed(2);
		alert (result);
		}
	}