Pular para o conteúdo principal

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

ProgramaçãoJavaScript
Código
qg347823
Banca
Quadrix
Órgão
COREN-PR
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Acerca da programação orientada a objetos (POO), da linguagem de programação Python e da linguagem JavaScript, julgue o item a seguir.Em JavaScript, a palavra‑chave let não define funções diretamente, mas pode ser utilizada para armazenar funções anônimas em variáveis.
  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”.

JavaScript: let e funções anônimas

Gabarito: ✅ CERTO. Em JavaScript, a palavra-chave let é utilizada para declarar variáveis com escopo de bloco, e não para definir funções diretamente. No entanto, como funções em JavaScript são valores de primeira classe, é perfeitamente válido armazenar uma função anônima em uma variável declarada com let, como em let minhaFuncao = function() { ... };. A afirmação está correta.

O cerne da questão está em dois conceitos fundamentais do JavaScript: a declaração de variáveis e o tratamento de funções como valores. Vamos explorar cada um deles.

Primeiro, a palavra-chave let (introduzida no ECMAScript 6, também conhecido como ES6) é usada para declarar variáveis com escopo de bloco. Isso significa que uma variável declarada com let dentro de um bloco { } (como um if, for, ou um bloco isolado) só é acessível dentro desse bloco. Isso difere da palavra-chave var, que tem escopo de função. O let também não permite a redeclaração da mesma variável no mesmo escopo, o que ajuda a evitar erros.

Segundo, e mais importante para esta questão, o JavaScript trata funções como cidadãos de primeira classe. Isso significa que funções são valores como qualquer outro (números, strings, objetos), podendo ser atribuídas a variáveis, passadas como argumentos para outras funções, retornadas de funções e armazenadas em estruturas de dados. Uma função anônima é simplesmente uma função que não possui um nome. Ela pode ser definida de várias formas, sendo a mais comum a function expression:

let minhaFuncao = function() {
  console.log("Olá, mundo!");
};

minhaFuncao(); // Chama a função armazenada na variável

Neste exemplo, a palavra-chave let declara a variável minhaFuncao, e o valor atribuído a ela é uma função anônima. A função não tem nome próprio; ela é referenciada através da variável. Isso é exatamente o que a afirmação descreve: let não define funções diretamente (não é uma declaração de função como function minhaFuncao() {}), mas pode ser usada para armazenar uma função anônima em uma variável.

É importante distinguir isso de uma declaração de função (function declaration), que usa a palavra-chave function seguida de um nome:

function minhaFuncao() {
  console.log("Olá, mundo!");
}

Neste caso, a função tem um nome (minhaFuncao) e é definida diretamente. A palavra-chave let não participa da definição da função em si, apenas da criação da variável que a referencia.

A banca explora exatamente essa distinção: a palavra-chave let é um declarador de variável, não um declarador de função. Mas, como funções são valores, a variável pode armazenar uma função. A afirmação está correta ao afirmar que let "não define funções diretamente" (correto, pois não é uma declaração de função) "mas pode ser utilizada para armazenar funções anônimas em variáveis" (correto, pois funções são valores de primeira classe).

let
  • 1Declara variável
    • Escopo de bloco
    • Não redeclarável
  • 2Não define função
  • 3Função anônima
    • Valor de primeira classe
    • Atribuível a variável
      • let minhaFuncao = function() {}
LEVEL · soulevel.com.br
NÃO CAIA NESSA!

A banca pode tentar confundir o candidato ao sugerir que let é uma forma de declarar funções, como let function() {}. Isso é um erro de sintaxe. let é exclusivamente para variáveis. A pegadinha aqui é não confundir a declaração de função (que usa function) com a atribuição de uma função a uma variável (que usa let ou const).

PEGA ESSA DICA!

Para resolver questões sobre declaração de variáveis e funções em JavaScript, lembre-se: let e const são para variáveis (com escopo de bloco), var é para variáveis (com escopo de função), e function é para declarar funções. Funções podem ser atribuídas a variáveis, mas a palavra-chave usada para a variável não é a que define a função.

Gabarito: ✅ CERTO

Link permanente: /questoes/qg347823