Questão de Programação — JavaScript — Quadrix 2023
- Código
- qg027197
- Banca
- Quadrix
- Órgão
- CREFITO-7ª Região(BA e SE)
- Ano
- 2023
- Nível
- Superior
- Cargo
- Programador(a)
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: ✅ CERTO. O FileReader() é, de fato, um objeto (construtor) da API File API do JavaScript, utilizado para ler o conteúdo de arquivos de forma assíncrona no navegador — exatamente como afirma o item. A afirmação está correta e alinhada com a documentação da MDN e com o uso prático da linguagem.
O FileReader é uma API fornecida pelo ambiente do navegador (Web API) que permite que aplicações web leiam arquivos selecionados pelo usuário (por exemplo, via <input type="file"> ou drag-and-drop) sem precisar enviá-los ao servidor. Ele é especialmente útil para pré-visualizar imagens, processar arquivos de texto, CSV, JSON, entre outros, diretamente no cliente.
A leitura é assíncrona: você cria uma instância com new FileReader(), define um handler para o evento onload (ou usa addEventListener('load', ...)) e chama um dos métodos de leitura, como readAsText(), readAsDataURL(), readAsArrayBuffer() ou readAsBinaryString(). Quando a leitura é concluída, o resultado fica disponível na propriedade result do objeto.
Exemplo prático:
const input = document.querySelector('input[type="file"]');
input.addEventListener('change', (event) => {
const file = event.target.files[0];
const reader = new FileReader();
reader.onload = (e) => {
console.log(e.target.result); // conteúdo do arquivo
};
reader.readAsText(file);
});A banca explora aqui um ponto conceitual: o FileReader é frequentemente confundido com o File (que representa o arquivo em si) ou com o FileList (a lista de arquivos de um input). Mas a questão é direta: o FileReader é o objeto que lê o arquivo, e essa leitura ocorre no navegador. Não há pegadinha sutil — a afirmação é verdadeira.
Para fixar, lembre-se da tríade: File (representa o arquivo), FileList (coleção de arquivos) e FileReader (lê o conteúdo). O FileReader é o único que realiza a leitura em si, e sempre de forma assíncrona, usando métodos como readAsText() e readAsDataURL().
✅ CERTO.
Link permanente: /questoes/qg027197