Q:

Error en la ejecución de la programación (JavaScript)

En la ejecución de este ejercicio tengo problemas. No he incluido el botón de la llamada en el mensaje pero sí que lo he añadido en el programa.
El enunciado es el siguiente: "Cread una función que calcule la media de varios números introducidos, donde estos pueden ser un número variable de valores." 
Para añadirle dificultad también he hecho que sean un numero variable de variables. Me genera un numero de variables al azar correctamente. Lo he hecho entre 1 y el 10 variables para resumirlo.
Se pueden introducir los datos correctamente pero posteriormente, una vez he terminado de introducir los datos, no me sale la pantalla de alert(resultado). Lo he probado con document.write(resultado) y tampoco funciona.
<script type="text/javascript">
    function media(){
        var variable=0;
        var resultado;
        var x;
        min=1;
        max=10;
        var numeroale=Math.floor(Math.random()*max-min+1)+min;
        for( var intento=0;;intento=intento+1){
            if (intento<numeroale){
                x=window.prompt("Introduzca un numero:");
                variable=variable+parseInt(x);
            }else if(intento==numeroale){
                resultado=num.toString(variable/(intento+1));

            }   
        }
        return(resultado);
        alert(resultado);
    }
</script>

Y ya que estoy formularé otra pregunta (relacionado con el tema) a la siguiente duda que me surgió el otro día. Me comentaron que no es recomendable cortar un "for" con un "break" o un "continue", que otro método hay o como podría hacerlo?
Saludos,

A:

Tienes los siguientes problemas:

Debes indicar cuando parar el for, ya que actualmente no lo estas haciendo o hacer un break;. De lo contrario puedes generar un bucle infinito. Esto no ocurre porque cuando entra a if(intento==numeroale), la variable num no esta definida.
Todo lo que esta posterior a un return nunca sera ejecutado.

Solución:

function media() {
  var variable = 0;
  var resultado;
  var x;
  min = 1;
  max = 10;
  var numeroale = Math.floor(Math.random() * max - min + 1) + min;
  // AQUI indicamos que el for debe parar cuando `intento` sea igual a `numeroale`
  for (var intento = 0; intento < numeroale; intento = intento + 1) {
    x = window.prompt("Introduzca un numero:");
    variable = variable + parseInt(x);
  }
  // AQUI calculamos el resultado
  resultado = variable / intento;
  // AQUI ejecutamos el `alert` antes del `return`
  alert(resultado);
  return resultado;
}
<button onclick="media()">Empezar</button>

