Questão 50 · Informática: Programação e algoritmos
Analise o código JavaScript a seguir. var x = document.getElementById("xpto"); while (x.hasChildNodes()) { x.removeChild(x.childNodes[0]); } O efeito da execução desse trecho é
- A) a remoção de todos os elementos subordinados ao elemento cujo id é “xpto”.
- B) um erro de execução, pois “xtpo” é usado equivocadamente onde deveria haver uma referência numérica.
- C) um erro de execução, pois o índice 0 não se aplica no HTML.
- D) um erro de sintaxe, pois a declaração da variável “x” deveria explicitar o tipo element.
- E) um erro de sintaxe, pois o método removeChild é inválido.
Marque a alternativa correta:
Gabarito: A
Gabarito definitivo divulgado pela banca FGV (ALE/MA 2023).
Comentário
Gabarito: A.
O código obtém o elemento de id "xpto" e, enquanto ele tiver nós filhos (hasChildNodes()), remove o primeiro (childNodes[0]). Como cada remoção diminui a lista, o laço termina quando não há mais filhos. O efeito é remover tudo o que está subordinado a "xpto", e o próprio elemento permanece na página. Alternativa A.
- (B) "xpto" é o id passado como texto a
getElementById, que é o uso correto; não há erro. - (C) O índice 0 é válido em
childNodes, que é uma lista indexada a partir de zero. - (D) JavaScript não exige declarar o tipo da variável;
var xaceita qualquer valor. - (E)
removeChildé método válido dos nós do DOM; não há erro de sintaxe.
Dica: remover repetidamente childNodes[0] enquanto houver filhos esvazia o elemento.
Fundamentos: manipulação do DOM em JavaScript · hasChildNodes e removeChild · laços e remoção de nós filhos
Comentário gerado pela Cravei IA a partir do enunciado e do gabarito definitivo divulgado pela banca, e conferido por uma verificação automática. A IA pode errar: o gabarito oficial sempre prevalece.
Fonte: prova FGV ALE/MA 2023 (Assistente Legislativo Administrativo - Criador e Desenvolvedor de Web e Plataformas Digitais), questão 50, com o gabarito definitivo da banca. Comentário: Equipe Cravei · como fazemos e revisamos.