1
00:00:00,840 --> 00:00:06,120
A última peça fundamental de funções de Javascript que ainda temos de cobrir é a palavra-chave de retorno.

2
00:00:06,210 --> 00:00:10,260
Então, este vídeo vai se concentrar no conceito de qual é a palavra-chave de retorno.

3
00:00:10,410 --> 00:00:14,260
E então, também, como escrevemos funções que o usam.

4
00:00:14,310 --> 00:00:17,120
Então eu gosto de imaginar que as funções são uma máquina.

5
00:00:17,230 --> 00:00:21,920
Nós escrevemos uma função e é preciso algumas entradas e esses seriam os argumentos.

6
00:00:22,110 --> 00:00:24,530
E faz algo com essas inscrições matemáticas.

7
00:00:24,660 --> 00:00:29,660
Ele verifica se um usuário está logado adiciona uma pontuação e então retorna algo no final.

8
00:00:29,690 --> 00:00:32,030
Existe um resultado que ele envia de volta.

9
00:00:32,430 --> 00:00:37,910
Portanto, até agora, as funções só tomaram entradas e na verdade não enviaram nada de volta.

10
00:00:37,950 --> 00:00:44,960
Então, eu vou mostrar o que quero dizer, se tivermos uma função chamada Quadrado que vimos na última

11
00:00:44,970 --> 00:00:46,700
lição e o quadrado contou.

12
00:00:46,950 --> 00:00:59,710
Vamos chamar X e tudo o que fizemos dentro foi cancelado o log x times X. Se eu correr quadrado e eu passar num número como 4, vejo o número 16 aqui.

13
00:01:00,120 --> 00:01:09,060
Então, parece que eu tenho um resultado que eu realmente tenho é algo impresso no console com diálogo de

14
00:01:09,720 --> 00:01:14,970
console, mas na verdade não tenho algo que está sendo retornado.

15
00:01:15,210 --> 00:01:20,140
Então, há uma grande diferença.

16
00:01:20,310 --> 00:01:22,010
Se eu usar a palavra-chave de retorno, significa que posso capturar o valor que está voltando para fora da função.

17
00:01:22,200 --> 00:01:28,080
Agora não consigo capturá-lo.

18
00:01:28,500 --> 00:01:30,150
Portanto, um registro constante apenas o imprime no console.

19
00:01:30,390 --> 00:01:33,110
Então, apenas um desenvolvedor jamais veria isso de qualquer maneira e não posso usá-lo em nenhuma outra parte do meu código.

20
00:01:33,270 --> 00:01:39,100
Então, digamos que eu queria fazer algo onde eu tinha uma

21
00:01:39,150 --> 00:01:48,960
linha que era como quatro quadrados é e então eu queria colocar o que fosse voltar do quadrado quatro.

22
00:01:48,960 --> 00:01:52,320
Então, algo assim, eu queria juntar isso.

23
00:01:52,360 --> 00:01:56,120
Então quatro quadrados são mais quadrados de quatro.

24
00:01:56,340 --> 00:02:00,620
Agora, se eu fizer isso, apenas me diz que quatro quadrados são indefinidos.

25
00:02:00,810 --> 00:02:06,030
E isso porque nada está sendo retornado ou falta esse resultado.

26
00:02:06,030 --> 00:02:09,790
Então, mesmo que ele imprima algo, ele realmente não acaba de enviar nada.

27
00:02:10,050 --> 00:02:15,460
Então, para fazer isso, usamos a palavra-chave de retorno.

28
00:02:15,480 --> 00:02:18,130
Então, é uma mudança muito simples.

29
00:02:18,180 --> 00:02:20,200
Nós apenas vamos voltar e, em vez de registrar comparáveis, vou escrever retorno.

30
00:02:20,220 --> 00:02:26,980
Então, a palavra-chave de retorno retornará uma coisa por função.

31
00:02:27,480 --> 00:02:31,690
tenhamos algum tipo de afirmação if, em vez de uma declaração IF, devolvemos

32
00:02:31,800 --> 00:02:37,310
uma coisa e, em vez disso, devolvemos outra coisa, mas ainda apenas uma dessas Vai realmente retornar.

33
00:02:37,980 --> 00:02:43,260
Poderíamos, teoricamente, ter várias declarações de retorno, mas apenas o primeiro será realmente executado, a menos que

34
00:02:43,260 --> 00:02:48,180
Então, neste caso, estamos retornando X vezes x.

35
00:02:48,870 --> 00:02:52,750
Então, se eu executar este agora quadrado

36
00:02:52,860 --> 00:03:03,720
de quatro, você pode ver que isso me mostra 16, mas é um pouco diferente do que antes.

37
00:03:03,720 --> 00:03:04,430
Do jeito que imprimiu 16, você verá esta seta aqui e isso me diz que é um valor de retorno.

38
00:03:04,440 --> 00:03:10,240
Então, se eu simplesmente cancelar, não logue algo por conta própria, como cancelar o log para um

39
00:03:10,500 --> 00:03:17,850
número de impressão quatro, mas logo abaixo, você pode ver que há um valor de retorno no log constante retorna indefinido.

40
00:03:17,850 --> 00:03:23,400
Então, isso explica por que vimos tantos indefinidos.

41
00:03:23,610 --> 00:03:26,580
Se você já se perguntou o que é isso.

42
00:03:26,580 --> 00:03:28,200
Eu segurei em explicar isso até chegarmos à palavra-chave de retorno.

43
00:03:28,200 --> 00:03:31,480
Então, cada função retorna algo.

44
00:03:31,560 --> 00:03:33,730
E se não explicitamente dizer o que devolvê-lo apenas retorna indefinido.

45
00:03:33,890 --> 00:03:38,490
Então, parece que tínhamos nossa função quadrada e,

46
00:03:38,490 --> 00:03:45,300
quando a executávamos, ela retornava undefine mesmo que imprimisse 16 ainda retornava indefinida.

47
00:03:45,300 --> 00:03:48,990
Então, para usar o valor agora para capturar o resultado do quadrado quadrado

48
00:03:49,050 --> 00:03:57,030
de quatro se eu quiser usar isso em outro lugar, eu posso chamar de volta esta linha que se parece com isso 4 quadrados é mais quadrado de 4.

49
00:03:57,030 --> 00:04:03,910
E isso vai correr.

50
00:04:04,140 --> 00:04:05,470
Ele vai passar para um vai multiplicar X vezes x 16 e depois retornou 16.

51
00:04:05,660 --> 00:04:11,760
Ele vai enviá-lo para fora da função e colocá-lo aqui.

52
00:04:11,760 --> 00:04:16,170
E por isso temos quatro quadrados é 16.

53
00:04:16,320 --> 00:04:20,370
A outra coisa que posso fazer com a palavra-chave de retorno

54
00:04:20,370 --> 00:04:24,840
é salvá-la em uma variável para que eu possa fazer algo assim.

55
00:04:24,840 --> 00:04:25,510
O resultado Var é igual ao quadrado de 104.

56
00:04:25,740 --> 00:04:31,440
E agora, se eu olhar para os resultados, recebo dez mil e oitocentos e dezesseis.

57
00:04:32,360 --> 00:04:37,800
Então, esta função chamada quadrado de 104 foi avaliada que retornou 10000 816 que foi armazenada em resultado.

58
00:04:37,800 --> 00:04:47,400
Então eu tenho outro exemplo de uma função que retorna algo que é chamado de maiúsculas e leva uma

59
00:04:51,300 --> 00:04:57,120
seqüência de caracteres como a palavra Paris e o que ela faz

60
00:04:57,120 --> 00:05:04,440
é capitalizar a primeira letra e retorna toda a cadeia com essa primeira letra maiúscula.

61
00:05:04,440 --> 00:05:06,670
Então, Paris se transforma em Paris com uma P. principal.

62
00:05:06,810 --> 00:05:11,150
Então, o objetivo desta função é que altera um pouco os dados originais, então

63
00:05:11,330 --> 00:05:17,010
passamos na string e, em seguida, recuperamos uma versão da seqüência de caracteres que possui a primeira letra maiúscula.

64
00:05:17,340 --> 00:05:22,540
A lógica de como ele realmente capitaliza a primeira letra não é o que eu quero enfatizar aqui.

65
00:05:22,830 --> 00:05:27,450
O que eu quero enfatizar é isso aqui, tenho uma cidade variável que é Paris lowercase P. E então, estou capitalizando a cidade em maiúscula e salvando o valor de retorno para uma nova variável.

66
00:05:27,540 --> 00:05:34,840
Então, isso é algo que faremos muito, irá executar uma função, salve o valor

67
00:05:35,280 --> 00:05:42,080
de retorno para uma variável para que possamos usá-la novamente em algum outro lugar.

68
00:05:42,090 --> 00:05:47,850
Então, se você está se perguntando como essa função funciona, a primeira parte leva a primeira carta.

69
00:05:47,850 --> 00:05:50,010
Então, o personagem no índice 0 e uma maiúscula é isso.

70
00:05:50,010 --> 00:05:55,050
Então, isso nos daria maiúsculas e minúsculas e, em seguida, a string essa fatia leva um número.

71
00:05:55,080 --> 00:05:58,450
Neste caso, 1.

72
00:05:58,590 --> 00:06:04,320
Então, isso leva tudo do índice 1 em diante.

73
00:06:04,380 --> 00:06:05,800
A R, acho que todas as

74
00:06:06,300 --> 00:06:09,530
minúsculas e esmaga isso junto com o sinal de mais com a capital

75
00:06:10,080 --> 00:06:16,200
P. Então, estamos capitalizando a primeira letra e depois tirando tudo o resto depois do primeiro personagem e combinando os dois e retornando isso.

76
00:06:16,200 --> 00:06:21,360
Então, outro aspecto da palavra-chave de retorno é que ele pára a execução de uma função.

77
00:06:21,360 --> 00:06:23,610
Então, assim que devolvemos algo, a função está concluída.

78
00:06:24,360 --> 00:06:29,230
Então, o ponto inteiro de uma função é que é preciso algum tipo de entrada e, então, retorna algo.

79
00:06:29,610 --> 00:06:32,900
Então, assim que retorna, é apenas o fim da execução da função.

80
00:06:33,240 --> 00:06:37,700
Então aqui está um exemplo.

81
00:06:37,710 --> 00:06:41,440
Esta é a mesma função em maiúsculas, exceto com uma pequena diferença.

82
00:06:41,640 --> 00:06:43,080
E isso é verificar se passamos um número em

83
00:06:43,110 --> 00:06:47,450
vez de uma string que é o que essa linha faz se o tipo de entrada for igual ao número, então vamos retornar, isso não é uma string.

84
00:06:47,460 --> 00:06:54,100
Nós não queremos incomodar com nada disso.

85
00:06:54,100 --> 00:07:00,020
Então, esse retorno se passamos e um número irá curto-circuito e esse código nunca é executado,

86
00:07:00,210 --> 00:07:02,260
embora não haja nenhuma declaração L.

87
00:07:02,340 --> 00:07:08,640
Então esse código deve ser executado.

88
00:07:08,640 --> 00:07:09,990
Na verdade, ele não é executado, pois isso os curto-circuita.

89
00:07:10,140 --> 00:07:11,960
Se passarmos um número, caso contrário, se passarmos uma seqüência de caracteres como Paris, isso não é verdade.

90
00:07:12,000 --> 00:07:15,450
Portanto, essa declaração de retorno nunca é executada.

91
00:07:15,480 --> 00:07:20,690
E então esta declaração de retorno está errada.

92
00:07:20,760 --> 00:07:22,620
Então, a última coisa que eu quero apenas adicionar no final aqui é que

93
00:07:22,830 --> 00:07:24,990
existem duas sintaxes diferentes para declarar uma função e a primeira é o que estamos usando.

94
00:07:26,040 --> 00:07:31,170
É chamada de declaração de função.

95
00:07:31,380 --> 00:07:35,330
Então, escrevemos função e depois o nome da nossa função.

96
00:07:35,340 --> 00:07:37,410
E então passamos os argumentos e reescrevemos o nosso corpo de função dentro dos dois suportes.

97
00:07:37,980 --> 00:07:41,060
Há outra maneira de escrever uma função chamada expressão de função.

98
00:07:41,280 --> 00:07:47,220
E a maneira como fazemos isso é que, na verdade, escrevemos uma variável capitalizada e definimos isso igual a uma função.

99
00:07:47,250 --> 00:07:50,660
Portanto, estas são duas maneiras de definir funções equivalentes.

100
00:07:51,000 --> 00:07:58,560
Esta é uma declaração e esta é uma expressão.

101
00:07:59,640 --> 00:08:02,970
Então, há uma pequena diferença que é se eu declarar a função dessa forma, var capitalizado é igual à função.

102
00:08:02,970 --> 00:08:05,980
Se eu apenas decidisse mudar a letra maiúscula para ser igual ao número 10 ou ao número 15.

103
00:08:06,270 --> 00:08:13,260
Minha função está perdida.

104
00:08:13,890 --> 00:08:19,970
Então, vou mostrar o que quero dizer.

105
00:08:20,100 --> 00:08:21,720
Então eu vou declarar uma função var.

106
00:08:22,200 --> 00:08:24,000
Diga oi é igual a uma função e toda a função faz é cancelada log.

107
00:08:24,840 --> 00:08:27,260
Olá.

108
00:08:27,300 --> 00:08:36,430
Bem desse jeito.

109
00:08:37,180 --> 00:08:38,240
E então eu posso chamar de dizer oi e exatamente da mesma maneira que as declarações de função que vimos.

110
00:08:38,640 --> 00:08:40,350
Mas eu também posso decidir que dizer oi agora é igual a 34.

111
00:08:40,990 --> 00:08:47,550
Agora, se eu me referir a dizer oi, não posso avaliá-lo, não

112
00:08:47,910 --> 00:08:54,790
posso executá-lo como uma função mais à medida que avançamos para a classe.

113
00:08:54,880 --> 00:09:03,690
Usaremos declarações e expressões e também falaremos mais sobre o motivo pelo qual você usaria uma sobre a

114
00:09:03,690 --> 00:09:04,350
outra.

115
00:09:04,380 --> 00:09:09,510
&nbsp;

116
00:09:09,510 --> 00:09:10,620
&nbsp;
