Questão de Programação — JavaScript — Quadrix 2023
- Código
- qg027196
- Banca
- Quadrix
- Órgão
- CREFITO-7ª Região(BA e SE)
- Ano
- 2023
- Nível
- Superior
- Cargo
- Programador(a)
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO. O método read() não é exclusivo do JavaScript — ele existe em diversas linguagens, como C, C++, Java e PHP, cada uma com sua própria implementação. Além disso, em JavaScript, a leitura de arquivos é feita por APIs como FileReader e fs.readFile(), e não por um método read() nativo da linguagem. A afirmação, portanto, contém dois erros: a exclusividade e a própria existência do método na linguagem.
O enunciado mistura dois temas: métodos de acesso a arquivos e estruturas de dados (árvores). A parte sobre árvores é irrelevante para o julgamento — o foco está na afirmação sobre o método read(). Vamos analisar o que é verdadeiro e o que é falso.
Primeiro, é importante entender que métodos de acesso a arquivos são funções fornecidas por linguagens de programação ou por APIs específicas para ler, escrever e manipular arquivos. Cada linguagem tem sua própria forma de fazer isso. Por exemplo, em C, a função read() é usada para ler dados de um descritor de arquivo; em Java, a classe FileInputStream tem o método read(); em PHP, existe fread(). Portanto, a afirmação de que read() é usado exclusivamente pelo JavaScript é claramente falsa — é um método comum em várias linguagens.
Em JavaScript, especificamente, a leitura de arquivos depende do ambiente de execução:
No navegador: a API FileReader permite ler o conteúdo de arquivos selecionados pelo usuário, com métodos como readAsText(), readAsDataURL(), etc. Não existe um método read() nativo.
No Node.js: o módulo fs (file system) oferece funções como fs.readFile(), fs.readFileSync(), e também fs.read() (que é uma função de baixo nível, mas não é um método de um objeto, e sim uma função do módulo).
Assim, mesmo no Node.js, o método read() não é uma função nativa da linguagem JavaScript em si, mas sim uma função do módulo fs. E a leitura de uma quantidade específica de bytes ou caracteres é possível, mas não é uma característica exclusiva do JavaScript.
A banca explora a confusão entre o conceito genérico de "método de acesso a arquivos" e a implementação específica em JavaScript. O candidato pode pensar que read() é um método padrão do JavaScript, mas não é. Além disso, a palavra "exclusivamente" é um forte indicativo de erro, pois raramente algo é exclusivo de uma única linguagem.
Para fixar: o método read() existe em várias linguagens, e em JavaScript a leitura de arquivos é feita por APIs específicas, não por um método read() nativo.
A afirmação está errada por dois motivos principais:
Exclusividade falsa: o método read() não é exclusivo do JavaScript. Ele é utilizado em C, C++, Java, PHP, entre outras. Por exemplo, em C, read() é uma chamada de sistema para ler de um descritor de arquivo; em Java, FileInputStream.read() lê bytes de um arquivo.
Inexistência em JavaScript: JavaScript não possui um método read() nativo para leitura de arquivos. No navegador, usa-se FileReader (com readAsText(), readAsDataURL(), etc.); no Node.js, usa-se o módulo fs (com fs.readFile(), fs.readFileSync(), etc.). O método read() do módulo fs existe, mas é uma função do módulo, não um método da linguagem em si.
Portanto, a afirmação de que o método read() é "utilizado, exclusivamente, pela linguagem JavaScript" é incorreta, e a descrição de sua funcionalidade não corresponde à forma como JavaScript lida com arquivos.
A banca tenta fazer o candidato acreditar que read() é um método nativo do JavaScript, quando na verdade é um nome comum em várias linguagens. Além disso, a palavra "exclusivamente" é um sinal clássico de afirmação falsa — desconfie sempre de termos absolutos como "sempre", "nunca", "exclusivamente".
Para questões sobre leitura de arquivos em JavaScript, lembre-se: no navegador, use FileReader; no Node.js, use fs. Não existe um método read() nativo da linguagem. Se a alternativa disser que algo é exclusivo de uma linguagem, provavelmente está errada.
Gabarito: ERRADO
Link permanente: /questoes/qg027196