Você está na página 1de 2

const soma = (...

valores) =>{
function somar(val){
let res=0
for (v of val)
res+= v
return res
}
return somar(valores)
}
console.log(soma(10,5,15))

1. **Declaração da Função Externa `soma`:**

const soma = (...valores) => { ... }

- Aqui, você está declarando uma função chamada `soma`. Ela usa a sintaxe de arrow
function (`() => { ... }`), que é uma forma concisa de declarar funções em JavaScript.
- `...valores` é um parâmetro rest, que permite que você passe um número variável de
argumentos para a função. Todos os argumentos passados para `soma` serão coletados
em um array chamado `valores`.

2. **Declaração da Função Interna `somar`:**

function somar(val) { ... }

- Dentro da função `soma`, você está definindo uma outra função chamada `somar`.
- Esta função tem um parâmetro `val`, que é o array que será passado quando `somar`
for chamada.

3. **Lógica da Função Interna `somar`:**

let res = 0;
for (v of val)
res += v;
return res;

- Aqui, `somar` faz um loop através de todos os elementos do array `val`.


- A cada iteração do loop, o valor atual é adicionado à variável `res`.
- Após o loop, o valor total de `res` é retornado.
- Obs: Como só existe um comando dentro do for, a abertura de { } pode ser omitida.

4. **Chamada e Retorno da Função `somar` na Função Externa `soma`:**

return somar(valores);

- Dentro da função `soma`, você está chamando a função interna `somar` com `valores`
como argumento.
- Isso faz com que a função `somar` seja executada com os valores passados para
`soma`.
- O resultado retornado por `somar` é então retornado pela função `soma` como um
todo.

5. **Chamada de `soma` e Exibição do Resultado:**

console.log(soma(10, 5, 15)); // Saída: 30

- Aqui, você está chamando a função `soma` com os argumentos `10`, `5` e `15`.
- Esses valores são passados para a função `somar`.
- A função `somar` retorna a soma desses valores, que é `30`.
- Esse resultado é então exibido no console.

Então, resumindo, o código define uma função externa `soma` que, por sua vez, define e
chama uma função interna `somar` para calcular a soma dos valores passados como
argumentos para a função `soma`.

Você também pode gostar