Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Jesu en 07 de Septiembre 2017, 22:56

Título: JavaScript diferencia entre función que devuelve con return y la que no CU01122E
Publicado por: Jesu en 07 de Septiembre 2017, 22:56
EJERCICIO 1 de la entrega CU01122E del tutorial de programación web con JavaScript desde cero:

Código: [Seleccionar]
function obtenerImporteConImpuestos(importe_sin_impuestos,tipo_producto)
  {

  var msg='Importe sin impuestos: '+importe_sin_impuestos+'. ';
  var imp,res;
   switch(tipo_producto){
     case 1:
       imp=importe_sin_impuestos*0.21;
       res=parseInt(importe_sin_impuestos)+parseInt(imp);
       alert(msg+'Importe con el impuesto: '+res);
       break;
    case 2:
       imp=importe_sin_impuestos*0.10;
       res=parseInt(importe_sin_impuestos)+parseInt(imp);
       alert(msg+'Importe con el impuesto: '+res);
      break;
    case 3:
       imp=importe_sin_impuestos*0.5;
       res=parseInt(importe_sin_impuestos)+parseInt(imp);
       alert(msg+'Importe con el impuesto: '+res);
      break;
   }
   return res;
  }

EJERCICIO 2:

Código: [Seleccionar]
function obtenerImporteConImpuestos2(importe_sin_impuestos){
    var tipo_producto=0;
    var resultado=[];
    var msg;
    if (tipo_producto==1) {
      msg=alert(resultado[1]=importe_sin_impuestos*1.21);
      return msg;
    }
    else if (tipo_producto==2){
      msg=alert(resultado[2]=importe_sin_impuestos*1.10);
      return resultado[2];
    }else if (tipo_producto==3){
      msg=alert(resultado[3]=importe_sin_impuestos*1.05);
    }else {
      msg=alert(resultado[0]);
    }

  }

Archivo html

Código: [Seleccionar]
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Entrega 22</title>
    <script type="text/javascript" src="Ejercicio22.js">
    </script>
  </head>
  <body>
    <div> <p>Aquí un párrafo de texto situado antes de la imagen, dentro de un div contenedor</p>

    <img onclick="obtenerImporteConImpuestos(300000,2)" src="http://i.imgur.com/afC0L.jpg" alt="Notepad++"
    title="Notepad++, un útil editor de texto">
    <p onclick ="alert('Alerta JavaScript')" style="color: #D2691E;">Aquí otro párrafo de texto.
      JavaScript es un lenguaje utilizado para dotar de efectos dinámicos a las páginas web. </p>
    <img onclick="obtenerImporteConImpuestos2(100)" src="http://i.imgur.com/afC0L.jpg" alt="Notepad++"
        title="Notepad++, un útil editor de texto">
    </div>
      </body>
</html>
Título: Re:JavaScript diferencia entre función que devuelve con return y la que no CU01122E
Publicado por: Ogramar en 21 de Octubre 2017, 18:53
Buenas, para la función obtenerImporteConImpuestos2 el ejercicio pedía que la función devolviera un array, y en tu caso no estás devolviendo un array

Por un lado pones return msg; que devuelve una función alert, y por otro return resultado[2] que tampoco es un array sino un elemento de un array, y en otro caso haces por ejemplo msg=alert(resultado[0]); de modo que la función no devuelve nada ya que no hay un return.

Puede verse una solución correcta en https://www.aprenderaprogramar.com/foros/index.php?topic=3259.0

Salu2