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: paramonso en 02 de Marzo 2018, 17:34
-
Hola. Dejo el Ejercicio CU01167E typeof javascript saber tipo variable ambito scope global local, del tutorial pdf de programación JavaScript.
a) Haz una lista de las variables que intervienen indicando para cada variable cuál es su nombre, cuál es su tipo, cuál es su cometido y si está definida como variable global o variable local.
Variable target_date. Tipo Date. Cometido coge una fecha dada y la almacena para usar con otras variables. AmbitoGlobal
Variable days . Tipo Numérica Entera. Cometido calcular los días que faltan. Ámbito global.
Variable hours. Tipo Numérica Entera. Cometido calcular las horas que faltan. Ámbito global.
Variable minutes. Tipo Numérica Entera. Cometido calcular los minutos que faltan. Ámbito global.
Variable seconds. Tipo Numérica Entera. Cometido calcular los segundos que faltan. Ámbito global.
Variable countdown. Tipo Objeto. Cometido coge un elemento del DOM en este caso un div para presentar datos en pantalla. Ambito Local
Variable seconds_left.Tipo Numerica. Cometido calcula el tiempo que falta en segundos, minutos, horas, días. AmbitoLocal
b) ¿Qué ocurre si definimos la variable current_date en el ámbito global en vez de dentro de la función?
Que deja de contar el tiempo.
¿Por qué ocurre esto?.
Porque al estar fuera del ciclo de setInterval que es un bucle repetitivo la variable no se actualiza y no cambia su valor.
c) ¿Podríamos definir todas las variables como locales a la función y prescindir de las variables globales?
Si.
Si se pudiera hacer, ¿crees que sería positivo para el diseño del código, su mantenimiento y ampliabilidad, o por el contrario, que sería negativo?
No seria positivo. Porque si tenemos una función especializada en una determinada tarea y los datos que recibe están dentro de la misma función estos datos no se podrían reutilizar para otras tareas. Tendríamos que llamar a las de mas funciones desde esta función y poco a poco se iría cargando de tareas innecesarias para la función y las funciones son “trozos” de código de programa con un objetivo especializado. Aparte de que sería muy lioso a la hora de encontrar donde tenemos ciertas variables guardadas. Cada vez que quisiéramos ver una variable tendríamos que buscar dentro de todo el código del programa y en estos ejercicios el código es muy corto en programas más extensos sería muy tedioso y costaría mucho tiempo encontrar una variable.
Declarando las variables globales podríamos utilizarlas desde otras funciones.
d) ¿Qué métodos de los empleados en el código devuelven valores en milisegundos?
El metodo getTime() de la función Date
e) Razona la lógica del código. Con los contenidos que hemos visto en el curso hasta el momento, debes ser capaz de entender todo el código que aparece en el script.
Ante una fecha dada (bien sea dentro de la función Date o recibiendola de una variable) se extrae el tiempo en mili segundos con el método getTime y se carga en una variable que se pasará a una función. En esta función hay otra variable a la que se le pasa la fecha actual con Date.getTime() para extraer el tiempo en milisegundos. A partir de estas dos variables se crean otras en las que se hacen los cálculos para pasar el tiempo de milisegundos a segundos, minutos, horas y días una vez hechos los cálculos en estas variables se presentará por pantalla el tiempo que falta desde el día actual hasta la fecha dada. Si el valor que se le pasa es una fecha anterior a la fecha actual nos devolverá los días, horas, minutos y segundos en valor negativo. Los datos en vez de pasar restando pasarán sumando en valores negativos y se presentaran así en pantalla. Estos valores serán los días transcurridos desde la fecha dada hasta el día actual
-
Buenas, todo bien. Las variables que has indicado Tipo Numérica Entera se corresponderían con el tipo Number de JavaScript, que es el tipo que se asigna por defecto a valores numéricos cuando no hay una declaración explícita de tipo.
Salu2