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

[Dúvida] Necessidade de validação do botão

Olá, fiquei com uma dúvida, eu não entendi qual a necessidade da validação do botão usado nessa aula, pois ao nível usuário de qual forma ele passaria um valor para a function tocaSom que não fosse a do id do botão codado dentro do for ?

VALIDAÇÃO QUE EU NÃO ENTENDI A NECESSIDADE DE TER

if (elemento != null) {
    if (elemento.localName === 'audio') {
        elemento.play();
    }
} 

MEU CÓDIGO

function tocaSom(idSomTecla) {
    document.querySelector(idSomTecla).play();
}
for (let i=0;i < listaDeTecla.length;i++){
    const tecla = listaDeTecla[i];
    const idNomeSom = tecla.classList[1];
    const idSom = `#som_${idNomeSom}`

    tecla.onclick = function () {
        tocaSom(idSom);
    }
    tecla.onkeydown = function (event) {
        
        if(event.code === "Space" || event.code === "Enter") {
            tecla.classList.add("ativa");
        }
        
    }
    tecla.onkeyup = function () {
        tecla.classList.remove("ativa");
    }
} 
1 resposta
solução!

Oi Victor, tudo bem?

É importante entender que a validação é uma prática comum na programação, que tem como objetivo garantir que determinadas condições sejam atendidas antes de executar determinadas ações. No contexto do seu código, a validação é usada para verificar se o elemento clicado pelo usuário é um elemento de áudio, antes de reproduzir o som associado.

Vamos analisar a parte do código em questão:

if (elemento != null) {
    if (elemento.localName === 'audio') {
        elemento.play();
    }
}

Essas linhas de código estão dentro da função tocaSom(idSomTecla). Elas são responsáveis por verificar se o elemento alvo do evento de clique (representado por elemento) é diferente de null e se é um elemento de áudio. Caso essas duas condições sejam verdadeiras, o som associado ao elemento é reproduzido.

A necessidade dessa validação surge da possibilidade de o usuário interagir com elementos que não são botões de áudio. No seu código, você associou a função tocaSom(idSomTecla) ao evento de clique em cada botão, porém, não há uma restrição que impeça o usuário de clicar em outros elementos da página. Se isso acontecesse, a função tocaSom(idSomTecla) seria chamada com um idSomTecla que não corresponderia a um elemento de áudio válido.

Com a validação, você garante que somente elementos de áudio sejam reproduzidos quando o usuário interagir com eles. Se o elemento for null ou não for um elemento de áudio, a reprodução não ocorre, evitando possíveis erros ou comportamentos indesejados. Essa validação é uma medida de segurança para garantir que o código funcione corretamente e evite problemas caso elementos inválidos sejam selecionados acidentalmente.

Essa validação torna seu código mais robusto e menos propenso a erros.

Espero que essa explicação tenha te ajudado.

Um abraço e bons estudos.