Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

tengo el codigo igual que el video pero cuando lo ejecuto me sale error

sigo el paso a paso para ir alimentando el codigo igual que el video de la clase pero cuando lo voy a ejecutar me sale este error, Uncaught SyntaxError: Identifier 'numeroSecreto' has already been declared

le pregunte a la ia de luri y me cambio todo el codigo, pero sigo sin entender que esta mal, copio el codigo si alguien me puede guiar que estoy haciendo mal ya que lo sigo haciendo igual que en el video de la clase

let numeroSecreto = generarNumeroSecreto();

function asignarTextoElemento(elemento, texto) {
let elementoHTML = document.querySelector(elemento);
elementoHTML.innerHTML = texto;
return;
}

function verificarIntento() {
let numeroDeUsuario = parseInt(document.getElementById("valorUsuario").value);
console.log (typeof(numeroDeUsuario));
console.log (numeroSecreto);
console.log (typeof(numeroSecreto));
console.log (numeroDeUsuario);
console.log (numeroDeUsuario === numeroSecreto);
return;

}

function generarNumeroSecreto() {
return Math.floor(Math.random()*10)+1;

}

asignarTextoElemento("h1","juego del numero secreto");
asignarTextoElemento("p","Indica un numero del 1 al 100");

3 respuestas

El error que estás viendo, "Uncaught SyntaxError: Identifier 'numeroSecreto' has already been declared", generalmente significa que has declarado una variable con el mismo nombre más de una vez en el mismo ámbito de código, lo cual no está permitido en JavaScript.

estás llamando a la función generarNumeroSecreto() al principio del código, donde intentas asignar el valor a la variable numeroSecreto fuera de la función de forma correcta.

Quizas puedes arreglarlo si haces lo siguiente

let numeroSecreto;

function iniciarJuego() {
// Solo asignamos el número secreto si no está definido en esta parte Mario
if (numeroSecreto === undefined) {
numeroSecreto = generarNumeroSecreto();
}

// añade las funciones
asignarTextoElemento("h1", "Juego del número secreto");
asignarTextoElemento("p", "Indica un número del 1 al 100");
}

function asignarTextoElemento(elemento, texto) {
let elementoHTML = document.querySelector(elemento);
elementoHTML.innerHTML = texto;
return;
}

function verificarIntento() {
let numeroDeUsuario = parseInt(document.getElementById("valorUsuario").value);
console.log(typeof(numeroDeUsuario));
console.log(numeroSecreto);
console.log(typeof(numeroSecreto));
console.log(numeroDeUsuario);
console.log(numeroDeUsuario === numeroSecreto);
return;
}

function generarNumeroSecreto() {
return Math.floor(Math.random() * 10) + 1;
}

// Iniciar el juego
iniciarJuego();

Que cosas han cambiado en este aspecto

Creé la función iniciarJuego(): Dentro de esta función, se verifica si numeroSecreto ya está definido. Si no está definido, se genera un nuevo número secreto.

Llamada a iniciarJuego(): Llamamos a esta función al final del script para iniciar el juego correctamente.

De manera que te aseguras de que el numeroSecreto solo se declare una sola vez y así podemos evitar el error que tienes en el codigo bro

En algún lado se esta declarando la variable varias veces o se esta ejecutando 2 veces. En el código JS que pusiste no le veo la falla o tal vez se me este pasando, podrías pasar también tu código HTML si aun no das con la solución. A ver si por alguna razón lo esta importando 2 veces el código-

Gracias por las respuestas, entiendo lo que me dice que es como si fuera redundante mi codigo, pero e visto en otros que no han tenido problema en este caso e copiado el codigo igual al tutorial que nos dan en la clase y me a generado este error, es mas el hecho de no entender por que a uno si corre sin problema y a mi me a generado este error, se que deberia cambiarlo pero no entiendo por que si a unos funciona y a mi no; gracias Edwin por tu apoyo y sugerencia, volvere a replantear el codigo para encontrar una solucion como me indicas.