Considere o código Javascript exibido a seguir. <script> const registro = {nome:"Carlos", cidade:"São Paulo", idade:42}; let texto = ""; for (let r in registro) { texto += registro[r] + " "; } alert(texto); </script> A execução desse script provoca
- A)a exibição da string “Carlos São Paulo 42”.
Correta, porque o for...in percorre as chaves do objeto e o código concatena os valores de nome, cidade e idade.
- B)a exibição da string “Carlos”.
Errada, porque o laço não exibe só um campo, ele percorre todas as propriedades do objeto.
- C)a exibição de uma string vazia.
Errada, porque o texto é preenchido dentro do laço, então a string não fica vazia.
- D)um erro de execução.
Errada, porque o código é válido em JavaScript e não há referência a variável inexistente nem operação proibida.
- E)um erro de sintaxe.
Errada, porque a sintaxe do script está correta: objeto, laço for...in e acesso por colchetes são usados adequadamente.
Gabarito: A
Neste script, o objeto registro tem três propriedades: nome, cidade e idade. O laço for...in percorre as chaves do objeto, uma por uma, e em cada volta acessa o valor correspondente com registro[r]. Como o código concatena cada valor com um espaço, o texto final fica com os dados na ordem de iteração: "Carlos São Paulo 42 ". Depois, o alert exibe essa string. Em questões de prova, a ideia central é simples: for...in não percorre os valores diretamente, e sim os nomes das propriedades. Mas, como o código usa registro[r], ele pega o valor de cada chave sem dificuldade. Por isso, a alternativa correta é a que traz a exibição de "Carlos São Paulo 42". O espaço extra no final existe por causa da concatenação feita dentro do laço, mas isso não muda o conteúdo esperado pela banca. Ou seja: objeto com propriedades, laço lendo as chaves, acesso aos valores com colchetes e exibição do texto montado. Um pacote bem típico de JavaScript em prova.