Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Código dando erro SyntaxError: Identifier 'listaDeTeclas' has already been declared

Fiz o código conforme foi sendo explicado no curso, mas fica sempre dando o erro que está duplicado o "listaDeTeclas". Segue código.

function tocaSom (idElementoAudio) { document.querySelectorAll('idElementoAudio').play(); }

const listaDeTeclas = document.querySelectorAll('.tecla');

let contador = 0;

while (contador < listaDeTeclas.length) {

const tecla = listaDeTeclas[contador];
const instrumento = tecla.classList[1];

const idAudio = `#som_${instrumento}`;

console.log(idAudio);

tecla.onclick = function () {
    tocaSom(idAudio);
}

contador = contador + 1;

}

Mais alguém teve esse problema, mesmo testando em outro navegador continua apresentando erro.

1 resposta
solução!

Olá Wagner!

Esse erro SyntaxError: Identifier 'listaDeTeclas' has already been declared ocorre quando você tenta declarar uma variável com o mesmo nome mais de uma vez no mesmo escopo. No seu caso, parece que o problema pode estar fora do trecho de código que você compartilhou, talvez em alguma parte anterior do seu script.

Teste o seguinte, código:

function tocaSom(idElementoAudio) {
    const elemento = document.querySelector(idElementoAudio);
    if (elemento && elemento.play) {
        elemento.play();
    } else {
        console.error('Elemento ou função play não encontrado!');
    }
}

const listaDeTeclas = document.querySelectorAll('.tecla');

for (let contador = 0; contador < listaDeTeclas.length; contador++) {
    const tecla = listaDeTeclas[contador];
    const instrumento = tecla.classList[1];
    const idAudio = `#som_${instrumento}`;

    tecla.onclick = function () {
        tocaSom(idAudio);
    }
}

Em caso de persistência do erro, peço que você compartilhe o link do seu projeto no GitHub ou uma pasta com todos os arquivos que você utilizou no através do Google Drive. Dessa forma, conseguirei realizar os testes necessários e te ajudar de forma mais assertiva.

Lembre-se que, se enviar os arquivos por meio do Google Drive, é necessário conceder permissão para que eu possa ter acesso.

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!