Hola el ejercicio está bien resuelto. Dentro de la funcion ejercicio1() has hecho una validación de datos que está bien planteada, aunque el ejercicio no lo pedía. Por ejemplo con if (isNaN (precio)) se comprueba si el precio no es un valor numérico y si no lo es se avisa de que no es numérico y no pasa a hacer el cálculo.
Recomendaciones:
en la función obtenerImporteConImpuestos usas la variable impuesto sin haberla declarado. Se recomienda siempre declarar antes (aunque no es obligatorio) en este caso podrías usar var impuesto = 0; al principio de la función.
También has usado impuesto = Number(1.21);
Aquí puedes usar Number pero en realidad no es necesario. Indicar Number es adecuado cuando existe o puede existir duda. Por ejemplo cuando usas un Prompt el tipo devuelto es cadena de texto, en ese caso puede haber duda de si es numérico y por eso debes usar Number pero si escribes impuesto = 1.21; no hay duda y no sería necesario.
Debes mejorar la forma de nombrar variables var resultado = [undefined, 121, 110, 105]; ¿Por qué lo llamas resultado si no es un resultado? El nombre de una variable debe describir qué información porta esa variable, aquí podrías haberlo llamado factorImpuesto ó factorMultiplicador ó similar.
Aquí ¿no has cambiado el orden?
alert ('Para un importe sin impuestos de ' + precio2 + ' y tipo de producto 1 el importe es ' + precio2*resultado[2]/100 + ', si el producto es tipo 2 el importe es ' + precio2*resultado[1]/100 + ' y si el producto es tipo 3 el importe es ' + precio2*resultado[3]/100 + '.');
No sería producto 1 el importe es ' + precio2*resultado[1]/100 en vez de producto 1 el importe es ' + precio2*resultado[2]/100
El resultado con muchos decimales que comentas se debe a la forma de representación de los números que utilizan los computadores. Es decir, si introducimos como precio 22 y tipo de producto 2, deberíamos obtener 22*1,1 = 24,2
Sin embargo obtengo 24.200000000000003
Esto se debe a que el computador no trabaja con 22 y 1,1 sino con representaciones de estos números.
Esto se trata más adelante en el curso y también se trata cómo se puede solucionar, cuando avances en el curso lo verás.
Salu2