Ao invés de as funções executarem uma ação, como é o caso da função alert(), é possível que as funções retornem um valor. Para isso, utilizamos a palavra reservada return e, na sequência, o conteúdo que será retornado.
Utilizando o mesmo problema anterior, vamos criar uma função que recebe dois parâmetros, que são a média do aluno e a média para aprovação. A função deve retornar a mensagem "Aprovado" ou "Reprovado", dependendo da média do aluno. Veja o exemplo: EXEMPLO04.html
function situacaoAluno(mediaAluno, mediaAprovacao) {
if (mediaAluno >= mediaAprovacao) {
return "Aprovado";
} else {
return "Reprovado";
}
}
let resposta = situacaoAluno(10, 6);
alert(resposta);
Note que a função situacaoAluno() retorna um valor, que é a mensagem "Aprovado" ou "Reprovado". Assim, quando chamamos a função, passando os valores 10 e 6, a função retorna o valor "Aprovado" e esse valor é atribuído à variável resposta. Por fim, a variável resposta é exibida na caixa de diálogo.
Ainda, uma função com passagem de parâmetros pode retornar mais de um valor. Para isso, basta separar os valores por vírgula. Veja o exemplo: EXEMPLO05.HTML
function situacaoAluno(mediaAluno, mediaAprovacao) {
if (mediaAluno >= mediaAprovacao) {
return ["Aprovado", mediaAluno];
} else {
return ["Reprovado", mediaAluno];
}
}
let resposta = situacaoAluno(10, 6);
alert(`${resposta[0]}, ${resposta[1}`);
Alerta de spoiler: mais adiante, veremos que é possível retornar mais de um valor utilizando objetos (objetos em JavaScript ainda serão abordados na disciplina). Veja o seguinte código em JavaScript, retornando um objeto. EXEMPLO06.HTML
function situacaoAluno(mediaAluno, mediaAprovacao) {
if (mediaAluno >= mediaAprovacao) {
return {situacao: "Aprovado", media: mediaAluno};
} else {
return {situacao: "Reprovado", media: mediaAluno};
}
}
let resposta = situacaoAluno(10, 6);
alert(`${resposta.situacao} com média ${resposta.media}`);
Um outro exemplo, retornando um array de objetos: EXEMPLO07.HTML
function dadosPessoa() {
let pessoas = [
{nome: "João", idade: 20},
{nome: "Maria", idade: 30},
{nome: "José", idade: 40},
{nome: "Ana", idade: 50}
];
return pessoas;
}
let resposta = dadosPessoa();
alert(`Nome: ${resposta[0].nome}, Idade: ${resposta[0].idade}`);
E, caso queira escrever na tela todos os dados de todas as pessoas, basta fazer um laço de repetição: EXEMPLO08.HTML
function dadosPessoa() {
let pessoas = [
{ nome: "João", idade: 20 },
{ nome: "Maria", idade: 30 },
{ nome: "José", idade: 40 },
{ nome: "Ana", idade: 50 }
];
return pessoas;
}
let resposta = dadosPessoa();
for (let i = 0; i < resposta.length; i++) {
document.write(`Nome: ${resposta[i].nome}, Idade: ${resposta[i].idade}<br>`);
}
Algumas funções nativas do JavaScript que valem ser mencionadas aqui, quais podem ser úteis em algum momento da vida do programador:
88funcoes.html