JavaScript - Ayuda código reloj

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 122 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Ayuda código reloj

Publicado por azulmarino (2 intervenciones) el 27/06/2020 03:24:40
Hola, buenos días. Tengo un problema. He escrito este código en JavaScript como resultado a un ejercicio en el que se me pedía que hiciera un reloj. El caso es que me da un error en la línea 35 y no entiendo el por que. Os adjunto el código abajo. Si me pudierais explicar por que me da error y como solucionarlo os lo agradecería mucho.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!DOCTYPE html>
<html lang="es">
<head>
    <meta http-equiv="Content-Type" content="text/html;" charset="UTF-8"/>
    <title>Reloj</title>
    <script type="text/javascript">
        function reloj () {
            //Variables
            var horaActual = new Date();
            var hora = horaActual.getHours();
            var minuto = horaActual.getMinutes();
            var segundo = horaActual.getSeconds();
 
 
            //Evitar errores un solo número
            var comprobarHora = new String (hora);
            if (comprobarHora.lenght == 1) {
                hora = "0" + hora;
            }
 
            var comprobarMinuto = new String (minuto);
            if (comprobarMinuto.length == 1) {
                minuto = "0" + minuto;
            }
 
            var comprobarSegundo = new String (segundo); {
                segundo = "0" + segundo;
            }
 
            //Mostrar reloj en pantalla
            var miHora = hora + " : " + minuto + " : " + segundo;
        }
        function actualizar() {
            miReloj = document.getElementById("reloj");
            miReloj.innerHTML = miHora;
        }
        setInterval(actualizar,1000);
    </script>
</head>
<body>
    <div id="reloj">00 : 00 : 00</div>
</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Ayuda código reloj

Publicado por joel (895 intervenciones) el 27/06/2020 13:37:42
Hola, no indicas exactamente el error que te da, pero en la linea 35 utilizas la variable miHora, que no esta definida en su "scope"... es decir, la variable esta definida dentro de la función reloj, por lo que únicamente se puede utilizar en esa función.

La solucion para por definir la variable fuera de la función reloj()...
1
var miHora="";
y dentro de la función reloj() quitar el "var" delante de "miHora"

No se si me he sabido explicar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha disminuido su posición en 122 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Ayuda código reloj

Publicado por azulmarino (2 intervenciones) el 27/06/2020 20:54:49
Muchas gracias. He hecho lo que me has dicho y aparte he modificado la función actualizar y ha funcionado. Dejo el código por aquí por si alguien tiene el mismo problema.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!DOCTYPE html>
<html lang="es">
<head>
    <meta http-equiv="Content-Type" content="text/html;" charset="UTF-8"/>
    <title>Reloj</title>
    <script type="text/javascript">
    var miHora = " ";
        function reloj () {
            //Variables
            var horaActual = new Date();
            var hora = horaActual.getHours();
            var minuto = horaActual.getMinutes();
            var segundo = horaActual.getSeconds();
 
 
            //Evitar errores un solo número
            var comprobarHora = new String (hora);
            if (comprobarHora.lenght == 1) {
                hora = "0" + hora;
            }
 
            var comprobarMinuto = new String (minuto);
            if (comprobarMinuto.length == 1) {
                minuto = "0" + minuto;
            }
 
            var comprobarSegundo = new String (segundo); {
                if (comprobarSegundo.length == 1)
                segundo = "0" + segundo;
            }
 
            //Mostrar reloj en pantalla
            miHora = hora + " : " + minuto + " : " + segundo;
            return miHora
        }
        function actualizar() {
            miHora = reloj()
            miReloj = document.getElementById("reloj");
            miReloj.innerHTML = miHora;
        }
        setInterval(actualizar,1000);
 
    </script>
</head>
<body>
    <div id="reloj">00 : 00 : 00</div>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Ayuda código reloj

Publicado por joel (895 intervenciones) el 28/06/2020 12:14:08
Gracias por compartirlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar