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