Buenas tardes,
Vengo a hacer entrega del ejercicio CU01118E del tutorial pdf de programación JavaScript desde ceroen el que se nos pide lo siguiente:
a) Describe paso a paso lo que hace el código anterior, indicando en qué orden se carga cada cosa (instrucciones HTML, instrucciones CSS, instrucciones JavaScript). Por ejemplo, ¿se carga el html <h2>Operadores de incremento</h2> en el instante en que solicitamos al navegador que muestre la página web? ¿En qué orden se ejecutan los scripts?
b) Introduce errores en los scripts de modo que estos no se ejecuten ¿Qué se visualiza en la página web?
c) Introduce 0 y 0 como números en el ejemplo anterior. ¿Cuántas veces el resultado de las operaciones es NaN? ¿Por qué?
Bueno, el código que se nos pide evaluar es el siguiente:
<html> <head> <title>Curso JavaScript aprenderaprogramar.com</title> <meta charset='utf-8'>
<style type='text/css'>
body {background-color: #FAEBD7; font-family: sans-serif; line-height: 1.3;}
div {border-style: solid; margin: 15px; padding: 10px; float: left;}
</style>
<script type='text/javascript'>
var a = prompt('Introduzca un número entero'); var b = prompt('Introduzca otro número entero');
a = Number(a) //Si no hacemos esto a es un texto y a+b concatena el texto
b = Number(b)
</script>
</head>
<body>
<div> <h2>Operadores de incremento</h2>
<script type='text/javascript'>
var valorInicial_a = a; document.write('Valores iniciales: a = ' + a + ', b = ' + b + '<br/> <br/>');
aumentar = ++a * b; document.write ('Operador ++ (anterior): ++a * b == ' + aumentar + '<br/>');
document.write ('(Ahora el valor de a es: ' + a + ')<br/><br/>');
a = valorInicial_a; aumentar = a++ * b;
document.write ('Operador ++ (posterior): a++ * b == ' + aumentar + '<br/>');
document.write ('(Ahora el valor de a es: ' + a + ')<br/><br/>');
a = valorInicial_a; //Restablecemos el valor que inicialmente tenía a
disminuir = --a * b; document.write ('Operador -- (anterior): --a * b == ' + disminuir + '<br/>');
document.write ('(Ahora el valor de a es: ' + a + ')<br/><br/>');
a = valorInicial_a;
disminuir = a-- * b;
document.write ('Operador -- (posterior): a-- * b == ' + disminuir + '<br/>');
document.write ('(Ahora el valor de a es: ' + a + ')<br/><br/>');
a = valorInicial_a;
</script>
</div>
<div>
<h2>Operadores de asignación compuestos</h2>
<script type='text/javascript'>
document.write('Valores iniciales: a = ' + a + ', b = ' + b + '<br/> <br/>');
inicio = a;
a += b;
document.write ( 'Asignación compuesta de suma: a += b equivale a = a + b<br/>');
document.write ( '(Ahora el valor de a es: ' + a + ')<br/><br/>');
a = inicio; a -= b; document.write ( 'Asignación compuesta de resta: a -= b equivale a = a - b<br/>');
document.write ( '(Ahora el valor de a es: ' + a + ')<br/><br/>');
a = inicio; a *= b;
document.write ( 'Asignación compuesta de multiplicación: a *= b equivale a = a * b<br/>');
document.write ( '(Ahora el valor de a es: ' + a + ')<br/><br/>');
a = inicio; a /= b;
document.write ( 'Asignación compuesta de división: a /= b equivale a = a / b<br/>');
document.write ( '(Ahora el valor de a es: ' + a + ')<br/><br/>');
a = inicio; a %= b;
document.write ( 'Asignación compuesta de módulo: a %= b equivale a = a % b<br/>');
document.write ( '(Ahora el valor de a es: ' + a + ')<br/><br/>');
</script></div> </body> </html>
Agregue pausas (alert) en el inicio de cada Script para comprobar resultados.
A)Describe paso a paso lo que hace el código anterior: Bien, la primera parte de todo en ejecutarse del HTML seria el contenido de las etiquetas
head. Primero se establecen los estilos de nuestra pagina web (CSS) y seguidamente nuestro primer script para pedirle valores al usuario entra en acción.
Luego de que acabar con head, sigue la etiqueta
body. Automáticamente que entramos aqui, se ejecuta el segundo script (tan rapido que no logro visualizar que se carga primero las etiquetas h2 "Operadores de incremento"...). Al acabar de ejecutarse el segundo script se puede apreciar la primera tabla. Seguidamente continua con la carga del otro div, se inicia el tercer y ultimo script. Y acaba la carga de la pagina.
B)Introduce errores en los scripts de modo que estos no se ejecuten ¿Qué se visualiza en la página web?: El comportamiento es el siguiente... si el compilador detecta un error por ejemplo, en el primer script (contenido en head) automaticamente salta al siguiente script del body y el script del head no se ejecuta. A continuación, si hubiese algún error en el siguiente script, el comportamiento es el mismo. Obviamente, como el primer script toma los valores del usuario, simplemente los siguientes scripts se ejecutarian normalmente insertando el etiquetado html, solo que con errores de calculo. Si existen errores en los 3 scripts de la pagina, unicamente vamos a visualizar el etiquetado html: los dos divs con sus respectivos encabezados h2.
C)Introduce 0 y 0 como números en el ejemplo anterior. ¿Cuántas veces el resultado de las operaciones es NaN? ¿Por qué?: Podemos ver que el valor NaN únicamente aparecería en las operaciones que tengan que ver con división (2 veces). Esto tiene su explicación
gracias a la clase de matemática en la escuela: cualquier valor dividido entre 0 nos daría como resultado "infinito", un número que no es real... muchisimo mayor a los valores que normalmente manejamos nosotros. Es por ello que JavaScript automáticamente asigna valores NaN en las respuestas de cada operación.
Salu2!