Bom dia, pessoal!
Tentei incrementar o código final do curso para que quando o usuário inserir um elemento que não seja do tipo áudio, ela receba a mensagem "Erro! O elemento é um BUTTON (por exemplo) por favor, selecione um elemento áudio". Porém, ocorre um erro quando o objeto é nulo, ele mostra a mensagem "Elemento não encontrado" mas também mostra o erro "Uncaught TypeError: Cannot read properties of null (reading 'localName')", pois nulo não retorna o localName uma vez que nulo não existe.
Minha dúvida é: a primeira verificação if (elemento === null) , se for verdadeira, não deveria parar por aí e não continuar a ler o resto do código? Então por quê ainda dá esse erro do localName se ele se encontra apenas no else?
function tocaSom (seletorAudio) {
const elemento = document.querySelector(seletorAudio);
if (elemento === null) {
console.log('Elemento não encontrado');
}
if (elemento && elemento.localName === 'audio') {
elemento.play();
}
else {
const tipo_tag = document.querySelector(elemento.localName);
console.log(`Erro! O elemento é um ${tipo_tag} por favor, insira um elemento áudio`);
}
}