You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
4.7 KiB
80 lines
4.7 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "8328f58f4593b4671656ff8f4b2edbd9",
|
|
"translation_date": "2025-10-22T22:59:33+00:00",
|
|
"source_file": "2-js-basics/2-functions-methods/assignment.md",
|
|
"language_code": "br"
|
|
}
|
|
-->
|
|
# Diversão com Funções
|
|
|
|
## Instruções
|
|
|
|
Neste exercício, você praticará a criação de diferentes tipos de funções para reforçar os conceitos que aprendeu sobre funções em JavaScript, parâmetros, valores padrão e declarações de retorno.
|
|
|
|
Crie um arquivo JavaScript chamado `functions-practice.js` e implemente as seguintes funções:
|
|
|
|
### Parte 1: Funções Básicas
|
|
1. **Crie uma função chamada `sayHello`** que não recebe nenhum parâmetro e simplesmente exibe "Olá!" no console.
|
|
|
|
2. **Crie uma função chamada `introduceYourself`** que recebe um parâmetro `name` e exibe uma mensagem como "Oi, meu nome é [name]" no console.
|
|
|
|
### Parte 2: Funções com Parâmetros Padrão
|
|
3. **Crie uma função chamada `greetPerson`** que recebe dois parâmetros: `name` (obrigatório) e `greeting` (opcional, com valor padrão "Olá"). A função deve exibir uma mensagem como "[greeting], [name]!" no console.
|
|
|
|
### Parte 3: Funções que Retornam Valores
|
|
4. **Crie uma função chamada `addNumbers`** que recebe dois parâmetros (`num1` e `num2`) e retorna a soma deles.
|
|
|
|
5. **Crie uma função chamada `createFullName`** que recebe os parâmetros `firstName` e `lastName` e retorna o nome completo como uma única string.
|
|
|
|
### Parte 4: Misturando Tudo
|
|
6. **Crie uma função chamada `calculateTip`** que recebe dois parâmetros: `billAmount` (obrigatório) e `tipPercentage` (opcional, com valor padrão de 15). A função deve calcular e retornar o valor da gorjeta.
|
|
|
|
### Parte 5: Teste suas Funções
|
|
Adicione chamadas de função para testar cada uma das suas funções e exibir os resultados usando `console.log()`.
|
|
|
|
**Exemplo de chamadas de teste:**
|
|
```javascript
|
|
// Test your functions here
|
|
sayHello();
|
|
introduceYourself("Sarah");
|
|
greetPerson("Alex");
|
|
greetPerson("Maria", "Hi");
|
|
|
|
const sum = addNumbers(5, 3);
|
|
console.log(`The sum is: ${sum}`);
|
|
|
|
const fullName = createFullName("John", "Doe");
|
|
console.log(`Full name: ${fullName}`);
|
|
|
|
const tip = calculateTip(50);
|
|
console.log(`Tip for $50 bill: $${tip}`);
|
|
```
|
|
|
|
## Rubrica
|
|
|
|
| Critério | Exemplar | Adequado | Precisa Melhorar |
|
|
| -------- | --------- | -------- | ---------------- |
|
|
| **Criação de Funções** | Todas as 6 funções são implementadas corretamente com sintaxe e convenções de nomenclatura adequadas | 4-5 funções são implementadas corretamente com pequenos problemas de sintaxe | 3 ou menos funções implementadas ou erros graves de sintaxe |
|
|
| **Parâmetros e Valores Padrão** | Usa corretamente parâmetros obrigatórios, opcionais e valores padrão conforme especificado | Usa parâmetros corretamente, mas pode ter problemas com valores padrão | Implementação de parâmetros incorreta ou ausente |
|
|
| **Valores de Retorno** | Funções que devem retornar valores fazem isso corretamente, e funções que não devem retornar valores apenas executam ações | A maioria dos valores de retorno está correta, com pequenos problemas | Problemas significativos com declarações de retorno |
|
|
| **Qualidade do Código** | Código limpo, bem organizado, com nomes de variáveis significativos e indentação adequada | Código funciona, mas poderia ser mais limpo ou melhor organizado | Código difícil de ler ou mal estruturado |
|
|
| **Testes** | Todas as funções são testadas com chamadas de função apropriadas e os resultados são exibidos claramente | A maioria das funções é testada adequadamente | Testes limitados ou incorretos das funções |
|
|
|
|
## Desafios Extras (Opcional)
|
|
|
|
Se você quiser se desafiar ainda mais:
|
|
|
|
1. **Crie uma versão com função arrow** de uma das suas funções
|
|
2. **Crie uma função que aceita outra função como parâmetro** (como os exemplos de `setTimeout` da aula)
|
|
3. **Adicione validação de entrada** para garantir que suas funções lidem com entradas inválidas de forma adequada
|
|
|
|
---
|
|
|
|
> 💡 **Dica**: Lembre-se de abrir o console do desenvolvedor do seu navegador (F12) para ver a saída das suas declarações `console.log()`!
|
|
|
|
---
|
|
|
|
**Aviso Legal**:
|
|
Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional feita por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução. |