← Questões de Programação

Programação · FGV · 2022

Questão comentada de Programação

Analise o trecho de código JavaScript a seguir. const xxxxx = ... let texto = ""; for (const x of xxxxx) { texto += x; } Assinale a definição de xxxxx que não funciona para o código acima.

Gabarito: C

Neste tipo de questão, o ponto central é simples: o trecho usa um `for...of`, então `xxxxx` precisa ser algo iterável, isto é, algo que possa ser percorrido elemento por elemento. Strings, arrays, `Set` e até `Map` funcionam bem porque o JavaScript consegue entregar itens em sequência para o laço. No caso de `Map`, o laço percorre pares `[chave, valor]`, e ao fazer `texto += x`, esses pares acabam sendo convertidos para texto. Já em `undefined` e `null`, cada item do array também pode ser percorrido normalmente, sem drama. O gabarito é a letra C porque `const xxxxx = {10,12,14};` não forma um objeto válido em JavaScript. Dentro de chaves, você precisa de pares chave-valor, propriedades abreviadas ou alguma estrutura sintaticamente correta; do jeito que está, a declaração já quebra antes mesmo do `for...of` começar a trabalhar. Em resumo: o laço `for...of` exige um iterável, mas aqui a pegadinha principal é ainda mais cruel: a alternativa C nem chega a ser uma definição válida de JavaScript. A banca gosta muito desse detalhe de sintaxe disfarçado de teste de iteração.

Continue treinando

Questões relacionadas