Autor Tema: JavaScript para qué sirve eval, ejercicio de calculadora y botones CU01133E  (Leído 2579 veces)

jbodenser

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 28
    • Ver Perfil
Buenas, este es el ejercicio 1 de la entrega CU01133E del curso de JavaScript. Cambiado el codigo para usar if en vez de switch.

Código: [Seleccionar]
function pulsada (tecla) {
    var listaNodosPantalla = document.getElementsByClassName('pantalla');
    var nodoTextoPantalla = listaNodosPantalla[0].firstChild;

    if (tecla == 'C') {
      nodoTextoPantalla.nodeValue = ' ';
    } else if (tecla == '=') {
      var resultado = eval(nodoTextoPantalla.nodeValue);
      nodoTextoPantalla.nodeValue = resultado;
    } else {
      nodoTextoPantalla.nodeValue = nodoTextoPantalla.nodeValue + tecla;
    }


Ejercicio 2.

El cual no llego a entender del todo el ejemplo, especialmente la parte de eval(llamada) en la parte final. Por qué está allí? Lo he borrado y me ha dado el mismo resultado.
Aún así he intentado hacerlo yo solo.

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Botones con eval</title>
<style>
div {
width: 300px;
height: 450px;
margin: auto;
overflow: hidden;
background: rgba(146, 212, 24, .5);
text-align: center;
}
a {
width: 90%;
height: 350px;
background: rgba(245, 245, 245, .8);
margin: 10px auto;
display: block;
}
button {
display: inline-block;
padding: 15px;
margin: 10px 20px 0 20px;
}
</style>
<script type="text/javascript">
function componer (sentido) {
var texto1 = 'Has pulsado el boton';
var aEvaluar = texto1 + ' ' + sentido;
alert (aEvaluar);
eval (aEvaluar);
}
</script>
</head>
<body>
<div>
<a href="#"></a>
<button type="button" onclick="componer('Atras');">Atrás</button>
<button type="button" onclick="componer('Adelante');">Adelante</button>
</div>

</body>
</html>
« Última modificación: 16 de Febrero 2016, 08:22 por César Krall »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Eval, ejercicio de calculadora y botones CU01133E
« Respuesta #1 en: 14 de Febrero 2016, 23:08 »
Hola jbodenser.

El primer ejercicio está bien.

En el segundo no hace lo que pide el enunciado.
Citar
dos botones que pongan “Adelante” y “Atrás”, de modo que cuando se pulsen den lugar a que se llame la función componer(sentido). En esta función, a través de la función eval se ejecutará moverImagen('adelante') ó moverImagen('atras') según el parámetro recibido. La función moverImagen(sentido) puede contener un simple mensaje indicando el valor del parámetro <<sentido>> recibido.

Has creado la función componer(), pero no llamas a la función moverImagen() en ningún momento dado que no la has construido. Te dejo un ejemplo para que lo veas mas claro, basado en el código que tu has propuesto.

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Botones con eval</title>
<style>
div {
width: 300px;
height: 450px;
margin: auto;
overflow: hidden;
background: rgba(146, 212, 24, .5);
text-align: center;
}
a {
width: 90%;
height: 350px;
background: rgba(245, 245, 245, .8);
margin: 10px auto;
display: block;
}
button {
display: inline-block;
padding: 15px;
margin: 10px 20px 0 20px;
}
</style>
<script type="text/javascript">
function moverImagen(sentido){
alert('Has pulsado el boton ' + sentido);
}
function componer (sentido) {
eval ('moverImagen(\''+ sentido + '\')');
}
</script>
</head>
<body>
<div>
<a href="#"></a>
<button type="button" onclick="componer('Atras');">Atrás</button>
<button type="button" onclick="componer('Adelante');">Adelante</button>
</div>
</body>
</html>

En tu ejemplo, "aEvaluar" contiene una simple cadena de texto, por eso da igual que quites la última linea.
Sin embargo esta linea:
Código: [Seleccionar]
eval ('moverImagen(\''+ sentido + '\')');Aunque es una cadena de texto también, en este caso eval dará lugar a que se llame a la función moverImgen(sentido).

Espero que te sirva.

Saludos.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".