wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Quiz avaliativo PWEB 2 - N1

Total questions: 10

Worksheet time: 5mins

Name
Class
Date
1.

Em um servidor Node.js que opera em um único thread principal, o desempenho é frequentemente limitado por operações de Entrada/Saída (I/O), como consultas a um banco de dados remoto ou acesso a disco. Nesses cenários, qual o impacto imediato no throughput (vazão) do servidor se a aplicação for forçada a usar operações síncronas e bloqueantes de I/O?

a)

O servidor aproveita o paralelismo de múltiplos núcleos de CPU para acelerar a leitura de dados, aumentando o throughput.

b)

O único thread de execução é obrigado a esperar a conclusão da I/O, travando o processamento de todas as outras requisições.

c)

O Event Loop imediatamente delega a tarefa para o thread pool do Node.js, garantindo que o fluxo principal continue não-bloqueante.

d)

O código é executado em sequência, mas o sistema operacional alterna o contexto rapidamente, minimizando o impacto da espera da I/O.

2.

O JavaScript é conhecido por ser uma linguagem single-threaded. Contudo, ele consegue executar operações assíncronas, como requisições de rede (Fetch API), sem travar a interface do usuário (UI). Qual conceito ou componente do ambiente de runtime (navegador/Node.js) é essencial para viabilizar essa concorrência não-bloqueante?

a)

A alocação de memória no Heap, que armazena objetos e variáveis globais.

b)

A Call Stack, que executa o código em sequência, garantindo que as operações assíncronas sejam concluídas primeiro.

c)

O Event Loop, que monitora a Call Stack e move tarefas das filas para a pilha quando ela está vazia.

d)

O modelo de multi-threading nativo do JavaScript que, a partir do ES6, substituiu as Web APIs.

3.

Considere o seguinte trecho de código JavaScript executado em um navegador ou Node.js que utiliza o modelo padrão do Event Loop: Qual será a ordem de exibição no console, considerando a prioridade entre macrotasks e microtasks?

a)

1, 2, 3, 4

b)

1, 4, 2, 3

c)

1, 4, 3, 2

d)

1, 3, 4, 2

4.

As Promises foram introduzidas no ES6 (2015) como uma melhoria em relação aos callbacks, representando o resultado futuro de uma operação assíncrona. Quais são os três estados possíveis de uma Promise, e qual transição representa uma falha no resultado da operação?

a)

Executing, Complete e Error; a transição de Executing para Error.

b)

Pending, Fulfilled e Rejected; a transição de Pending para Rejected.

c)

Active, Resolved e Canceled; a transição de Active para Canceled.

d)

Resolved, Rejected e Finally; a transição para Finally.

5.

Ao encadear Promises utilizando múltiplos métodos .then(), como em uma sequência de requisições que dependem do resultado da anterior, como o valor é passado de uma etapa para a próxima na cadeia?

a)

O valor retornado no callback do primeiro .then() é automaticamente passado como argumento para a função callback do próximo .then().

b)

O valor é armazenado em uma variável global oculta, que todos os .then() subsequentes podem acessar.

c)

Apenas o resultado de uma Promise rejeitada é passado para o próximo .then() na cadeia de chamadas.

d)

O encadeamento de Promises permite que a última função .then() acesse diretamente o resultado da primeira requisição.

6.

No consumo de Promises, o método .catch() é fundamental para o tratamento de erros. Se houver uma cadeia de três Promises encadeadas por .then(), e a segunda Promise for rejeitada, qual parte do código capturará esse erro?

a)

Somente o callback de falha definido dentro do .then() imediatamente seguinte à Promise rejeitada.

b)

O primeiro método .catch() encontrado após o ponto da rejeição na cadeia, pois ele captura erros da Promise e de qualquer .then() anterior.

c)

Apenas o .finally(), que sempre é executado independentemente do sucesso ou falha.

d)

O erro será silenciosamente ignorado, pois o JavaScript só trata erros síncronos.

7.

O Sistema de Módulos em JavaScript (ES Modules), introduzido no ES6 (2015), trouxe melhorias significativas na arquitetura de aplicações. Qual é uma das características fundamentais dos módulos ESM em relação ao escopo das variáveis e execução?

a)

Módulos ESM vazam símbolos para o objeto global (window no navegador), facilitando a comunicação entre arquivos.

b)

Módulos ESM são carregados dinamicamente em tempo de execução, permitindo o uso da sintaxe require().

c)

Módulos ESM possuem escopo próprio para seu código e não vazam símbolos para o objeto global.

d)

O this no topo de um módulo ESM aponta para module.exports, seguindo o padrão CommonJS (CJS).

8.

O ecossistema JavaScript utiliza principalmente dois padrões de módulos: ES Modules (ESM) e CommonJS (CJS). Qual é a diferença fundamental no modelo de carregamento que permite ao ESM habilitar otimizações como o Tree Shaking?

a)

O CJS utiliza carregamento estático, o que permite aos bundlers remover código não utilizado antes da execução

b)

O ESM utiliza carregamento estático, onde as dependências são analisadas antes da execução, enquanto o CJS usa carregamento dinâmico (require())

c)

O CJS é suportado nativamente pelo navegador, enquanto o ESM requer um bundler para funcionar

d)

O ESM só permite Export nomeado, e o CJS só permite Export default

9.

Operações Assíncronas no Event Loop (I/O) Quando uma função assíncrona, como readFile do Node.js ou fetch do navegador, é chamada, o que acontece com a tarefa de I/O enquanto o JavaScript continua executando o código síncrono na Call Stack?

a)

A tarefa de I/O é executada imediatamente na Call Stack, bloqueando-a temporariamente.

b)

A tarefa de I/O é delegada para um ambiente externo para ser executada em segundo plano.

c)

A tarefa é movida para a fila de microtasks e aguarda a próxima iteração do Event Loop.

d)

O JavaScript abandona a execução e espera passivamente pelo resultado da I/O.

10.

A Palavra-Chave async A palavra‑chave async (introduzida no ES2017) é usada para simplificar a escrita de código assíncrono que utiliza Promises. Qual é a garantia fundamental que a declaração async confere a toda e qualquer função, mesmo que ela não contenha a palavra‑chave await em seu corpo?

a)

A função async impede qualquer tipo de erro de tempo de execução.

b)

A função async executa sempre de forma síncrona.

c)

A função async sempre retorna uma Promise

d)

A função async pode ser executada em um thread separado do thread principal do JavaScript.