Pular para o conteúdo principal

Questão de Programação — JavaScript — Quadrix 2025

ProgramaçãoJavaScript
Código
qg594713
Banca
Quadrix
Órgão
CFBio
Ano
2025
Nível
Superior
Cargo
Analista de Desenvolvimento
Considerando as linguagens de programação e a análise orientada a objetos (AOO), julgue o item a seguir.No JavaScript, o comando let func = function() {} é utilizado para definir uma função anônima e atribuí‑la a uma variável.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Funções anônimas e atribuição a variáveis em JavaScript

Gabarito: CERTO. A instrução let func = function() {} cria uma função anônima (uma função sem nome) e a atribui à variável func, o que é perfeitamente válido em JavaScript. Isso é possível porque, nessa linguagem, as funções são tratadas como valores de primeira classe, podendo ser atribuídas a variáveis, passadas como argumentos ou retornadas de outras funções.

O conceito central aqui é o de função anônima e função de primeira classe. Em JavaScript, uma função pode ser definida sem um nome, criando uma expressão de função. Essa expressão pode ser armazenada em uma variável, como no exemplo do enunciado. A partir daí, a variável func pode ser invocada como uma função normal: func(). Essa é uma prática comum e fundamental na linguagem, especialmente para callbacks e para a criação de closures.

A atribuição de uma função a uma variável é uma das formas de se criar funções em JavaScript. Outra forma é a declaração de função, que usa a palavra-chave function seguida de um nome. A diferença prática entre as duas está no hoisting: declarações de função são içadas (hoisted) para o topo do escopo, podendo ser chamadas antes de sua definição no código; expressões de função, como a do enunciado, não são içadas, então a variável func só pode ser chamada após a linha de atribuição.

A banca explora aqui um conhecimento básico, mas essencial, da sintaxe da linguagem. A pegadinha, se houvesse, seria confundir a sintaxe de uma expressão de função com a de uma declaração de função, ou achar que a função anônima não pode ser atribuída a uma variável. No entanto, a afirmação do enunciado está correta e descreve exatamente o que o código faz.

1Declaração de função
function nome() {}
Sofre hoisting
2Expressão de função
let func = function() {}
Não sofre hoisting
Função anônima atribuída a variável
3Funções de primeira classe
Atribuídas a variáveis
Passadas como argumentos
Retornadas de outras funções
Funções em JavaScript
LEVELsoulevel.com.br
Funções em JavaScript: Declaração de função (function nome() {}, Sofre hoisting); Expressão de função (let func = function() {}, Não sofre hoisting, Função anônima atribuída a variável); Funções de primeira classe (Atribuídas a variáveis, Passadas como argumentos, Retornadas de outras funções)

Item — ✅ CERTO

A afirmação está correta. O código let func = function() {} define uma função anônima (sem nome) e a atribui à variável func. Isso é possível porque, em JavaScript, funções são valores de primeira classe, ou seja, podem ser tratadas como qualquer outro valor, sendo atribuídas a variáveis, passadas como argumentos ou retornadas de outras funções. A variável func passa a referenciar a função, podendo ser invocada com func().

Conceito de funções de primeira classe (ECMAScript):

"No JavaScript, as funções são de primeira classe, isto é, são objetos que possuem propriedades e métodos, e podem ser passados como argumentos, serem atribuídos a variáveis ou retornados como qualquer outro objeto."

A banca cobra aqui um conhecimento fundamental da linguagem: a diferença entre declaração de função (function nome() {}) e expressão de função (let func = function() {}). Enquanto a declaração é içada (hoisted) para o topo do escopo, a expressão não é, o que significa que a variável func só pode ser chamada após a linha de atribuição. Esse é um detalhe importante que diferencia as duas formas de criar funções.

NÃO CAIA NESSA!

Para fixar: declaração de função sofre hoisting (pode ser chamada antes da definição), enquanto expressão de função não sofre hoisting (só pode ser chamada após a atribuição). Essa é uma pegadinha clássica em provas de JavaScript.

Gabarito: CERTO

Link permanente: /questoes/qg594713