Respuesta al ejercicio CU01167E del tutorial JavaScript desde cero.
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.
var target_date --> es una variable global, es de tipo Date y su cometido es que tenga almacenada la fehca que introducimos.
var days, hours, minutes, seconds --> son variables globales que podrán ser definidas en cualquier momento, pero que no estan inicializadas entonces son de tipo 'undefined'
DENTRO DE LA FUNCION ejemplo
var countdown --> es una variable local de la funcion ejemplo() y no podrá ser modificada por otra función que no sea la que la contiene. Es de tipo object.
var seconds-left --> tambien una variable local, de tipo 'number'. Está definida por una operacion que interviene una variable local y una variable local.
days --> es de tipo number, aparte de ser utilizada en esta función en el ámbito global será inicializada. Podiendolo usar cualquier otra funcion con el valor que se obtenga de la operacion. Convierte su resultado a entero.
var seconds_left --> variable local de tipo number
hours --> es de tipo number, aparte de ser utilizada en esta función en el ámbito global será inicializada. Podiendolo usar cualquier otra funcion con el valor que se obtenga de la operacion. Convierte su resultado a entero.
minutes --> es de tipo number, aparte de ser utilizada en esta función en el ámbito global será inicializada. Podiendolo usar cualquier otra funcion con el valor que se obtenga de la operacion. Convierte su resultado a entero.
seconds --> es de tipo number, aparte de ser utilizada en esta función en el ámbito global será inicializada. Podiendolo usar cualquier otra funcion con el valor que se obtenga de la operacion. Convierte su resultado a entero.
b) ¿Qué ocurre si definimos la variable current_date en el ámbito global en vez de dentro de la función? ¿Por qué ocurre esto?
Si definimos current_date fuera de la función la variable se define nada más que le toca en el hilo de la función, se define una vez y no se modifica cada vez que la llamada de setInterval declara de nuevo la función cada segundo.
c) ¿Podríamos definir todas las variables como locales a la función y prescindir de las variables globales? 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?
Sí se podría crear las variables como locales, pero de hacerlo así es para facilitar la lectura del codigo y facilitar el mantenimiento y reusabilidad.
d) ¿Qué métodos de los empleados en el código devuelven valores en milisegundos?
No entiendo esta pregunta. El único método que veo que se use es 'getTime()', que pertenece al objeto Date.
Saludos.