Algo hiciste mal.
Va perfecto, aquí lo tienes todo junto.
Ya te expliqué anteriormente como separar los script. Míralo bien.
Va perfecto, aquí lo tienes todo junto.
Código (javascript) [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Factorial</title>
<script>function Factorizar(num1, num2, info) {
if(num1 < 0 || isNaN(+num1) || /\s/gm.test(num1) || num1 === null || num1 === "") {
throw new error("El número no puede ser factorizado");
}
var numero1 = num1, numero2 = num2;
while(num1) {
num2 = num1 * num2;
--num1;
switch(info) {
case 1:
console.log(numero1 + " - " + numero2 + " es igual a " + num2);
break;
case 2:
alert(numero1 + " - " + numero2 + " es igual a " + num2);
break;
}
}
return num2
}</script>
</head>
<body>
<script>
/* Declara 2 variables y las define en una sola expresión */
var n1 = prompt("Introduce un número"),
n2 = 1;
/* Declara otra variable. Aquí para indicar hoisting */
var div;
/* Muestra en consola que puso el usuario. */
console.log("El usuario ha introducido:" + n1);
/*
Mientras el numero sea negativo, sea NaN, contenga espacios, sea null o un string sin valor ... */
while(n1 < 0 || isNaN(+n1) || /\s/gm.test(n1) || n1 === null || n1 === "") {
console.log("El número " + n1 + " introducido no es factorizable.");
n1 = prompt("El número introducido no es factorizable.\nInténtalo de nuevo");
}
/* Coherce a número. */
n1 = +n1;
n2 = Factorizar(n1, n2, 1);
div = document.createElement("div");
div.id = "respuesta";
div.innerHTML = "El factorial es: " + n2;
document.body.appendChild(div);
</script>
</body>
</html>
Ya te expliqué anteriormente como separar los script. Míralo bien.