[Música] fala Mestres beleza no vídeo de hoje nós vamos iniciar aqui um novo módulo o módulo de funções Então a gente vai entender o que são as funções aqui no JavaScript Por que a gente usa né como que a gente usa a sintaxe das funções e pra gente ver o poder que isso tem né porque o que que o que que é a função né Ela é basicamente um bloco de código um bloco de código que a gente pode reutilizar várias vezes a partir de uma invocação né então eu invoco a função eu executo ela
e aquele código que está dentro da função vai ser executado e a função a gente consegue modularizar ela ou deixar ela dinâmica né através de parâmetros que nós veremos nas próximas aulas e basicamente ela facilita muito a a escrita do código a a forma que o código vai ser lido por outra por outros deves né porque a função ela ela tem um nome né então ela tem um nome ela tem parâmetros e a partir disso a gente consegue escrever o nosso código de uma forma que ele se autodescreve né a função com o nome bem
escrito ela já vai deixar claro o que que ela faz então quando a gente começa a escrever todo o código todo o programa pensando nisso nosso programa ele vai ficar bem legível bem interessante bem fácil de entender bem fácil de ler eá de dar manutenção Tá então vamos aqui pro vs code porque hoje nós vamos falar do básico aqui da declaração e a sintaxe básica de funções tá então a função a gente pode declarar ela usando function eu vou deixar comentado aqui né que seria né nós digitamos aqui function nós podemos nós temos que assim
nós podemos dar um nome pra função então por exemplo se eu criar aqui a função saudação e E aí depois do nome né Nós temos parênteses e Chaves tá onde os parênteses são seria né onde a gente vai fazer a definição de parâmetros e Chaves aqui é o corpo da função né a parte do código que vai ser executada e nós temos um outro tipo de função que são as funções anônimas elas não temm nome tá mas isso aqui é um caso específico onde a gente declara função assim mas agora que gente tá iniciando e
a função ela vai ter um nome atrelado a ela e ela vai ter esse bloco de código Então sempre que eu invocar essa função esse bloco de código O código que estiver aqui dentro vai ser executado então se eu vier aqui na saudação né e fazer o nosso famoso console log né escrever no terminal e olá mundo e se eu faço isso salvo e executo nosso código não vai ser escrito nada no terminal E por que que não vai ser escrito nada porque a função Como eu disse ela precisa ser invocada né Ela é um
bloco de código que pode ser invocado uma ou várias vezes então aqui eu estou declarando a função e aqui no final eu posso invocar ela então eu vou chamar saudação e eu uso os parênteses para para invocar né para indicar que eu quero executar essa função e essa forma aqui se eu executo né se eu dou Play aqui no código eu dei Play com isso aqui selecionado né por isso que deu erro então eu vou tirar a seleção aqui e dar play de novo e olha lá ó temos olá mundo e se eu chamar saudação
várias vezes e executar nós temos vários olá mundo tá então nós conseguimos fazer ah a função ser executada várias vezes e uma função ela pode executar outra função ela pode declarar a gente pode declarar outras funções dentro de funções tá e aqui a coisa começa a ficar maluca né porque a gente abre muito espaço para ter bagunça mas também abre um um muito espaço para conseguir organizar muita coisa e fazer a coisa de um jeito bem interessante tá então eu poderia ter outra função aqui ó eh saudação e aqui essa função aqui que a a
criatividade não vai ajudar no nome então vai ser a função teste que vai fazer o console pon log teste e eu posso chamar a função teste dentro da função saudação e enfim né aqui a a a criatividade que manda né então eu posso executar ó olá mundo teste olá mundo teste que é uma função chamando a outra tá mas nós conseguimos fazer bastante coisa funções são muito muito Poderosas e tem uma uma coisa que a função faz que a gente não falou até agora que é a questão de retorno né retorno de dados eu acho
que nesse curso eu já até cheguei a falar um falar sobre retornar mas eu nunca expliquei né e o que que seria esse retornar eh como a gente viu que a função ela não necessariamente precisa retornar um dado né nesse caso aqui eh esse ela só só dá um consol log então ela não é obrigada a retornar um dado mas ela pode retornar e o que que seria esse retornar Lembra nas aulas lá de de introdução onde a gente falou dos tipos de dados e enfim nós temos vários tipos de dados e esses tipos de
dados que a gente cria a gente manipula a gente pode retornar no caso eu posso atribuir eles a uma variável eu posso criar um dado criar alguma alum um objeto não porque a gente não falou ainda mas eu posso criar uma string criar um número atribuir a uma variável tudo isso dentro do corpo da função e no final eu retorno então por exemplo vamos fazer o seguinte eu vou ter aqui a variável eh nota que vai ser igual a zero e logo após eu vou fazer que nota vai receber vou somar em nota né então
aqui é mais igual ou vamos fazer anotação simples né nota vai receber eu vou atribuir de novo em nota o valor dela mais mais C tá E aqui no final eu vou retornar esse valor então eu escrevo aqui ó return nota tá então na função eu consigo retornar valores né objetos a Reis números inteiros undefined n nulo Strings eu consigo retornar o que eu quiser tá então com com esse retorno eu vou apagar aqui essa invocação repetida de saudação e engraçado é saudação tá retornando nota né não faz muito sentido mas vamos lá o retorno
da função eu posso atribuir em uma outra variável então eu posso aqui ó criar variável e resultado e eu vou atribuir em resultado o retorno da função saudação tá então eu vou a ordem de execução aqui é o seguinte eu declaro a função e aqui eu vou eu estou criando a nova variável né Só que essa variável ela inicializa com um valor que valor é esse o retorno da execução da função saudação então ele vai Executar a função saudação e o retorno vai atribuir na variável resultado então aqui embaixo eu vou fazer o nosso bonito
e lindo console.log resultado tá então quando eu isso aqui nós temos o terminal 5 né ou seja o o valor que eu criei aqui dentro de saudação eu retornei atribuí na variável resultado e fiz o log então voltando aqui pro Exemplo né de saudação de fato eu posso criar aqui a variável texto vai ser a string Olá m e aqui no final eu vou retornar o meu texto Beleza então retornando agora a string né olá mundo eu o fluxo vai ser o m retorno atribuo na variável e estou fazendo comó log então aqui se eu
executo ó lá temos olá mundo e eu posso retornar direto a string ó então eu vou tirar a variável texto e retornar há mundo tá então eu só apaguei aqui o conteúdo e movi o a string Ola Mundo para retornar né para quem tá em dúvida para mover é só selecionar clicar e arrastar tá eh com isso aqui então eu posso executar e temos lá ó olá mundo o mesmo resultado Ou seja a minha função o mesmo fluxo retorno dado e eu faço conso log Inclusive essa variável resultado Eu também não preciso dela eu posso
já fazer o conso log do retorno da função saudação então eu vou apagar aqui ó o o o resultado E vou Executar a função saudação dentro aqui do meu console log tá dentro e isso vai ser enviado como parâmetro como a gente não não falou nada aí sobre o parâmetro eh eu não vou explicar muito o que que tá acontecendo aqui mas a gente vai entender logo logo mas eu consigo fazer isso né Fazer o consol da resposta de saudação executando Aqui nós temos lá olá mundo também da mesma forma tá então com isso aqui
é basicamente a anotação para criar a função é essa eh esse conceito de retorno é extremamente importante a gente vai usar eh em todo canto aí em sempre todo tudo todo programa que a gente cria a gente tá trabalhando com funções e funções sempre Retornam ao Não não sempre né como a gente viu que a função ela não é obrigada a retornar e realmente existem muitas funções que não Retornam resultados Mas elas fazem alguma coisa né então um exemplo por exemplo um exemplo de envio de e-mail eu tenho a minha aplicação e a aplicação tem
a funcionalidade de enviar um e-mail pro usuário essa função essa funcionalidade de envio de e-mail ela pode ser implementada dentro de uma função então quando essa função for executada os e-mails serão enviados e enfim no exemplo nosso aqui eu não precisaria retornar a nada eh diferente por exemplo de uma função que soma números essa função vai somar os números e ela precisa retornar o resultado para quem chamou tá então nós podemos até declarar que a função soma e pra gente ver como que isso aqui funciona no no próximo exemplo que eu vou criar que é
um exemplo de que é uma forma diferente de declarar função tá então esses conceitos de funções que a gente falou aqui agora vai continuar valendo o que vai mudar é a forma a sintaxe de declaração dessa função que o nome que a gente dá para isso é a Arrow function que é muito utilizada e aqui nós vamos criar a função de soma então anotação nós usamos const e const a gente usou a gente falou lá em variáveis né então const é basicamente anotação para criar uma variável e quando eu declaro a função a gente viu
que a gente pode chamar né invocar essa função Então seria basicamente o a gente poderia pensar que quando a gente declarou essa function aqui nós basicamente declaramos uma variável chamada saudação e essa variável ela pode ser executada no formato de função tá e na errow function a notação aqui é diferente mas lembra essa ideia então eu uso const para declarar a função eu vou chamar essa função de soma e essa variável né vai receber aqui eu uso ó parênteses abro e fecho né faço aqui o sinal de flecha né ou seja o igual maior por
isso que o nome é errow function e aqui eu coloco as chaves tá então eu estou atribuindo na variável soma uma função tá E aí dentro dessa função eu posso somar os valores né então que eu vou criar uma variável resultado vai receber o resultado da soma de 10 mais 20 e essa função soma ela pode retornar return resultado e aqui tudo vale né tudo é igual então eu posso chamar aqui né o o o invocar né a função soma posso armazenar num variável a variável criar aqui usando let né variável não posso chamar a
variável de soma porque a função já chama soma então a variável eu não quero usar resultado vou chamar de result result vai receber vou atribuir né o o retorno da minha função soma e aqui no final console. log result salvando isso aqui e executando temos lá no log 30 né que é o resultado de 10 + 20 então é uma anotação diferente paraa declaração da função mas o resultado no final é o mesmo tá nós temos ali uma função com o nome né e na erof function a gente consegue também declarar eh a função anônima
Vale também a ideia da função anônima para errow function e por último Aqui nós temos dentro das zer functions O que seria uma sintaxe reduzida que basicamente seria uma errow function que já retorna um resultado Então essa né Essa forma de escrever a errow function vai sempre retornar um dado então se eu fizer aqui o seguinte ó eu vou declarar aqui a função multiplicar ela vai a variável né vai receber a função a errow function só que aqui agora eu não vou colocar Chaves né eu não vou abrir e fechar Chaves eu já coloco o
resultado que vai ser retornado então se eu fizer aqui por exemplo eh 2 x 5 5 isso aqui quando eu executar essa função ela já vai me retornar esse resultado direto tá então se eu chamar aqui multiplicar ó e já vou dar o conso log log multiplicar e executo aqui multiplicar dentro do console log se eu faço isso nós temos aqui o resultado dess né que é resultado da multiplicação de 2 x 5 então com essa notação eu vou até deixar aqui o comentário ó errow function reduzida é uma nova anotação que tem as suas
utilidades mas que no final continua sendo uma função que vai executar ali um um bloco de código nesse caso aqui não vai executar o bloco ela já vai ela vai pode executar uma expressão ela ela vai retornar um novo resultado Ela poderia invocar outra função ó ó o que que eu vou fazer aqui ó na função multiplicar e aqui o sentido não vai fazer sentido mas eu quero mostrar a flexibilidade disso aqui então na função multiplicar eu vou chamar a função soma e já vou retornar o resultado da função soma na minha função multiplicar e
e vou fazer o consol log então se eu salvo isso aqui ó e executo nós temos aqui o resultado 30 tá que é o resultado da função soma que eu já executei retornei o resultado paraa função multiplicar que ela já retornou pro meu console log tá então nós temos bastante flexibilidade nisso eh bastante possibilidades né de fazer as coisas e basicamente para essa aula aqui vai ser vai ser isso tá foram essas três eh formas diferentes aí de declarar função e também esse conceito de retorno que é extremamente importante tá então eu espero que eu
tenha ajudado qualquer dúvida pode estar deixando um comentário logo abaixo e é isso aí muito obrigado e até a próxima [Música]