eu fico nessa de decorar codigo

É basicamente por isso que você está tendo dificuldade, não decore, aprenda


Funções são blocos de código reutilizáveis dentro dos scripts, confuso? Considere esse script:

let a = parseInt(prompt("Digite o primeiro número"));
let b = parseInt(prompt("Digite o primeiro número"));
alert(`O resultado de ${a}+${b} é ${a+b}`);

Uma função é a mesma coisa só que dentro do bloco:

function exemplo1() {
  let a = parseInt(prompt("Digite o primeiro número"));
  let b = parseInt(prompt("Digite o primeiro número"));
  alert(`O resultado de ${a}+${b} é ${a+b}`);
}

Perceba que diferente do código anterior se você colar esse, não vai funcionar, isso porque você precisa executar a função, fazemos isso em javascript colocando o nome da função seguido por ():

function exemplo1() {
  let a = parseInt(prompt("Digite o primeiro número"));
  let b = parseInt(prompt("Digite o primeiro número"));
  alert(`O resultado de ${a}+${b} é ${a+b}`);
}

exemplo1();

Veja que agora funciona, mas se notou essa função não pega valores, as funções assim como na matemática (não era tão inútil assim afinal) funções aceitam argumentos, vamos chamar a função de "adiciona" e usar argumentos:

function adiciona(a,b) {
  alert(`O resultado de ${a}+${b} é ${a+b}`);
}

Note que novamente se você colar, não funciona, isso acontece porque de novo, não estamos chamando, para chamar uma função com argumentos passamos eles entre ( e ), separados por , assim:

function adiciona(a,b) {
  alert(`O resultado de ${a}+${b} é ${a+b}`);
}

adiciona(40,2);

Agora que você sabe declarar uma função, vamos aos detalhes chatos, o primeiro é que funções podem afetar o que está fora dela, confuso? Vamos ao seguinte código, note que estamos extraindo informações de fora da função:

// Vou informar 7
let a = parseInt(prompt("Digite o primeiro número"));
// Vou informar 3
let b = parseInt(prompt("Digite o primeiro número"));

function exemplo2() {
  alert(`O resultado de ${a}+${b} é ${a+b}`);
}

exemplo2();  // Como esperado, sai 10

Agora olha isso:

// Vou informar 7
let a = parseInt(prompt("Digite o primeiro número"));
// Vou informar 3
let b = parseInt(prompt("Digite o primeiro número"));

function exemplo3() {
  a = 40;
  b =  2;
  alert(`O resultado de ${a}+${b} é ${a+b}`);
}

alert(`O valor de a é ${a}\nO valor de b é ${b}`);
exemplo3();  // Agora a saida foi 42
alert(`O valor de a é ${a}\nO valor de b é ${b}`); // e os valores foram alterados

Da mesma forma funções como estão entre chaves tem seu próprio escopo:

// Vou informar 7
let a = parseInt(prompt("Digite o primeiro número"));
// Vou informar 3
let b = parseInt(prompt("Digite o primeiro número"));

function exemplo4() {
  let a = 40;
  let b =  2;
  alert(`O resultado de ${a}+${b} é ${a+b}`);
}

alert(`O valor de a é ${a}\nO valor de b é ${b}`);
exemplo4();  // A saida ainda foi 42
alert(`O valor de a é ${a}\nO valor de b é ${b}`); // e os valores não foram alterados

Quando estiver estudando POO você vai ter mais uma forma de usar funções mas como vc está tendo dificuldade no básico é melhor ir com calma


Pegue os exemplos que eu dei, modifica e testa eles até a exaustão que você pega o conceito