Atividades
Lista de Exercícios: Funções em JavaScript
Nível Básico (Questões 1-8)
O que é uma função em JavaScript e quais são os três principais benefícios de utilizá-las?
No código
function calcularMedia(nota1, nota2) { return (nota1 + nota2) / 2; }
, identifique o que é:A palavra-chave
O nome da função
Os parâmetros
O valor de retorno
Qual é a diferença fundamental entre "parâmetros" e "argumentos" em uma função?
Crie uma função anônima, armazene-a em uma variável chamada
despedida
e faça com que ela imprima "Até logo!" no console.Qual é a principal vantagem das "Arrow Functions" (Funções de Seta) em comparação com a declaração tradicional de função?
Converta a seguinte função para uma "Arrow Function" de uma única linha:
function quadrado(n) { return n * n; }
Uma função precisa obrigatoriamente ter uma instrução
return
? Explique a diferença entre uma função com e semreturn
.Escreva uma função chamada
boasVindas
que recebe umnome
como argumento e imprime no console a mensagem: "Bem-vindo(a), [nome]! 😊".
Nível Intermediário (Questões 9-18)
Explique o que é a "pilha de chamadas" (call stack) e como ela funciona quando uma função é invocada. Dica: Pense em uma pilha de pratos.
É apresentado três formas de criar uma função: declaração tradicional, expressão de função e arrow function. Qual delas sofre "hoisting" e o que isso significa na prática?
Qual será o resultado do código abaixo e por quê?
let animal = "gato"; function mostrarAnimal() { let animal = "cachorro"; console.log(animal); } mostrarAnimal(); console.log(animal);
De acordo com as convenções de nomeação, qual dos seguintes nomes é o mais adequado para uma função que verifica se um usuário está logado:
check
,logado
,verificarLogin
oufuncao_de_login
? Justifique.O que a função a seguir retornará ao ser chamada com
calcular(10, 5)
e por que esse é considerado um erro comum?function calcular(a, b) { let resultado = a - b; // Esqueci algo aqui }
O que é uma IIFE (Immediately Invoked Function Expression) e qual é uma de suas principais utilidades?
O que acontece se você chamar a função
soma(5, 10, 15)
abaixo? E se você chamarsoma(5)
?function soma(a, b) { return a + b; }
Como você pode modificar a função
saudacao
para que, ao ser chamada sem argumentos, ela imprima "Olá, visitante!" em vez de "Olá, undefined"?function saudacao(nome) { console.log("Olá, " + nome); }
Explique o que é uma "função de ordem superior" (higher-order function) e dê um exemplo.
Qual será o valor da variável
resultado
no final deste código e por quê?function mostrarAlerta() { return console.log("Executando..."); } let resultado = mostrarAlerta();
Nível Avançado (Questões 19-30)
Explique o conceito de "Closure" (fechamento) com base no exemplo da função
criarContador
fornecido neste material.O que a seguinte função, que utiliza o parâmetro "rest" (
...
), retornará ao ser chamada comsomarTudo(10, 20, 30, 40)
?function somarTudo(...numeros) { return numeros.reduce((total, atual) => total + atual, 0); }
Qual é a diferença prática entre
setTimeout
esetInterval
?No contexto de funções, o que é um "callback"? Crie uma função simples chamada
processar
que recebe um número e um callback, e executa o callback passando o dobro desse número como argumento.O que é uma função recursiva? Qual é o elemento essencial que toda função recursiva deve ter para evitar um "stack overflow" (estouro de pilha)?
Por que o uso do
Function constructor
(new Function(...)
) é geralmente desaconselhado?O que o objeto
arguments
representa dentro de uma função? Por que o parâmetro "rest" (...
) é considerado uma alternativa mais moderna?Analise o código abaixo. O que acontecerá quando a linha
soma()
for executada? Explique o erro.function soma() { return 2 + 2; } let soma = 10; console.log(soma());
Por que a primeira chamada de
mostrarMensagem()
funciona, mas a segunda gera um erro?// Caso 1 mostrarMensagem(); function mostrarMensagem() { console.log("Olá!"); } // Caso 2 mostrarMensagem2(); const mostrarMensagem2 = function() { console.log("Oi!"); };
Desafio de Código 1: Crie a função
avaliarAluno
proposta neste material, que recebe duas notas e retorna "Aprovado", "Recuperação" ou "Reprovado" com base na média.Desafio de Código 2: Crie a função
calcularNotas
que usa o parâmetro "rest" para aceitar um número indefinido de notas e retornar a média delas.Desafio de Código 3: Crie a função avançada
repetir
, que recebe uma função de callback e um númeron
, e executa o callbackn
vezes.
Last updated