Analise as afirmativas abaixo sobre funções Javascript. 1....
Analise as afirmativas abaixo sobre funções Javascript.
1. Uma função pode ser criada através de uma declaração function seguida do nome da função.
2. Uma função pode ser criada através de uma expressão, e armazenada em uma variável Javascript.
3. Uma função Javascript pode ser invocada antes de ser declarada, já que o Javascript move todas as declarações para o topo, através do recurso chamado Javascript Hoisting.
Assinale a alternativa que indica todas as afirmativas corretas.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - São corretas as afirmativas 1, 2 e 3.
Para compreender a questão, é importante ter conhecimento sobre as diversas formas de se criar funções em JavaScript e como o interpretador da linguagem trata essas declarações. Vamos analisar cada uma das afirmativas:
- Afirmativa 1: "Uma função pode ser criada através de uma declaração function seguida do nome da função." Esta afirmativa está correta. No JavaScript, você pode criar uma função usando a sintaxe de declaração de função, que começa com a palavra-chave function, seguida do nome da função e um par de parênteses para os parâmetros. Por exemplo: function minhaFuncao() {}.
- Afirmativa 2: "Uma função pode ser criada através de uma expressão, e armazenada em uma variável JavaScript." Esta afirmativa também está correta. As expressões de função podem ser anônimas ou nomeadas e são muitas vezes armazenadas em variáveis. Por exemplo: var funcaoExemplo = function() {}; ou const soma = function(a, b) { return a + b; };.
- Afirmativa 3: "Uma função JavaScript pode ser invocada antes de ser declarada, já que o JavaScript move todas as declarações para o topo, através do recurso chamado JavaScript Hoisting." Esta afirmativa é verdadeira para funções declaradas com a sintaxe de declaração de função (não para expressões de função). O mecanismo de hoisting eleva as declarações de função para o topo do seu contexto de execução, permitindo que essas funções sejam chamadas antes de sua declaração no código. Por exemplo, mesmo que você chame minhaFuncao() antes de sua declaração no código, isso não causará erro, pois o hoisting move a declaração da função para o topo do escopo.
Como todas as três afirmativas são corretas e correspondem ao conhecimento da linguagem JavaScript sobre funções e hoisting, a alternativa E é a correta. Este conhecimento é fundamental para programadores JavaScript, pois permite uma compreensão mais profunda de como as funções são tratadas durante a execução do código e auxilia na identificação e prevenção de potenciais problemas relacionados à ordem de execução no código.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Uma função criada com uma declaração function é um objeto e tem todas as propriedades, métodos e comportamentos dos objetos .
Uma expressão de função (function expression) é muito similar e tem quase a mesma sintaxe de uma declaração de função. A principal diferença entre uma expressão de função e a declaração de uma função é o nome da função (function name), o qual pode ser omitido em expressões de funções para criar funções anônimas.
HOISTING:
Hoisting (içamento, em português) é um termo que você não encontrará usado em nenhuma prosa de especificação normativa antes da . Hoisting foi pensado como uma maneira geral de pensar sobre como os contextos de execução (especificamente as fases de criação e execução) funcionam em JavaScript. No entanto, o conceito pode ser um pouco confuso a princípio.
Conceitualmente, por exemplo, uma definição estrita de elevação sugere que as declarações de variáveis e funções são fisicamente movidas para o topo do seu código, mas isso não é realmente o que acontece. Em vez disso, as declarações de variável e função são colocadas na memória durante a fase de compilação, mas permanecem exatamente onde você as digitou no seu código
fonte:https://developer.mozilla.org/pt-BR/
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo