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.
Web-Dev-For-Beginners/translations/br/2-js-basics/2-functions-methods/assignment.md

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.