Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Utilizando a VAR também não funciona

Testei a chamada da função antes dela existir com o VAR e também não funcionou, porém o erro foi diferente:

console.log(soma(1, 1))
var soma = function(num1, num2) {return num1 + num2}
TypeError: soma is not a function
    at Object.<anonymous> (/home/niedson/Curso_Alura/Curso_Javascript/expressoes-funcao.js:22:13)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
    at node:internal/main/run_main_module:17:47

Chamando o console.log após a var soma funcionou.

4 respostas

Olá.

Vc quer usar uma função e só depois escrever ela. Você pode fazer assim:

console.log(soma(1, 1))

function soma(num1, num2) {return num1 + num2}

Eu dei uma buscada pra entender melhor sobre o motivo e achei essa página aqui: https://fellowsdevel.com/diferenca-entre-declaracao-de-funcao-e-expressao-de-funcao/

Mas no geral a explicação é essa: "A diferença é que quando fazemos a Declaração de Função, permitimos que o parser analise previamente o que será executado enquanto a Expressão de Função é analisada em tempo de execução. Na declaração de função, devemos prestar atenção pois como mencionado, o JavaScript usa o “hoister” e isso faz com que qualquer declaração de função seja trazida para o início do contexto em que foi declarada"

Leonardo, o link que você inseriu não está funcionando.

solução!

Bom dia, irmão. Ajustado \0/.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software