1
00:00:00,840 --> 00:00:06,120
L'ultima parte fondamentale delle funzioni Javascript che dobbiamo ancora coprire è la parola chiave return.

2
00:00:06,210 --> 00:00:10,260
Quindi questo video si concentrerà concettualmente sulla parola chiave di ritorno.

3
00:00:10,410 --> 00:00:14,260
E poi anche come scriviamo le funzioni che lo usano.

4
00:00:14,310 --> 00:00:17,120
Quindi mi piace immaginare che le funzioni siano una macchina.

5
00:00:17,230 --> 00:00:21,920
Scriviamo una funzione e ci vogliono alcuni input e quelli sarebbero gli argomenti.

6
00:00:22,110 --> 00:00:24,530
E fa qualcosa con quegli input fa matematica.

7
00:00:24,660 --> 00:00:29,660
Controlla se un utente è loggato, aggiunge un punteggio e poi restituisce qualcosa alla fine.

8
00:00:29,690 --> 00:00:32,030
C'è un output che rimanda.

9
00:00:32,430 --> 00:00:37,910
Quindi fino ad ora le funzioni hanno solo preso input e in realtà non hanno inviato nulla indietro.

10
00:00:37,950 --> 00:00:44,960
Quindi ti mostrerò cosa intendo se avremo una funzione chiamata Square che abbiamo visto nell'ultima lezione e square

11
00:00:44,970 --> 00:00:46,700
ha preso un input.

12
00:00:46,950 --> 00:00:59,710
Chiamiamolo X e tutto ciò che abbiamo fatto è stato cancellato x il log x volte X. Se corro quadrato e passo in un numero come 4 vedo il numero 16 qui.

13
00:01:00,120 --> 00:01:09,060
Quindi sembra che io abbia un output quello che effettivamente ho è qualcosa che viene stampato nella console con la finestra

14
00:01:09,720 --> 00:01:14,970
di dialogo della console, ma in realtà non ho qualcosa che viene restituito.

15
00:01:15,210 --> 00:01:20,140
Quindi c'è una grande differenza.

16
00:01:20,310 --> 00:01:22,010
Se uso la parola chiave di ritorno, significa che posso acquisire il valore che sta tornando fuori dalla funzione.

17
00:01:22,200 --> 00:01:28,080
Al momento non riesco a catturarlo.

18
00:01:28,500 --> 00:01:30,150
Quindi un log costante lo stampa sulla console.

19
00:01:30,390 --> 00:01:33,110
Quindi solo uno sviluppatore lo vedrebbe comunque e non posso usarlo in nessun'altra parte del mio codice.

20
00:01:33,270 --> 00:01:39,100
Quindi diciamo che volevo fare qualcosa in cui avevo una

21
00:01:39,150 --> 00:01:48,960
linea che era come quattro al quadrato e poi volevo mettere quello che veniva dal quarto quadrato.

22
00:01:48,960 --> 00:01:52,320
Quindi qualcosa del genere volevo metterli insieme.

23
00:01:52,360 --> 00:01:56,120
Quindi quattro quadrati è più il quadrato di quattro.

24
00:01:56,340 --> 00:02:00,620
In questo momento, se lo faccio, mi dice solo che quattro al quadrato non sono definiti.

25
00:02:00,810 --> 00:02:06,030
E questo perché nulla viene restituito o manca questa uscita.

26
00:02:06,030 --> 00:02:09,790
Quindi, anche se stampa qualcosa che in realtà non dura, non invia nulla.

27
00:02:10,050 --> 00:02:15,460
Quindi per farlo usiamo la parola chiave return.

28
00:02:15,480 --> 00:02:18,130
Quindi è un cambiamento davvero semplice.

29
00:02:18,180 --> 00:02:20,200
Torneremo indietro e invece di registrazione analoga, scriverò di nuovo.

30
00:02:20,220 --> 00:02:26,980
Quindi la parola chiave return restituirà una cosa per funzione.

31
00:02:27,480 --> 00:02:31,690
non avremo una sorta di istruzione if in cui invece di un'istruzione IF abbiamo

32
00:02:31,800 --> 00:02:37,310
restituito una cosa e invece di Else abbiamo restituito qualcos'altro ma ancora solo una di quelle tornerà davvero.

33
00:02:37,980 --> 00:02:43,260
Potremmo teoricamente avere più dichiarazioni di ritorno, ma solo il primo verrà effettivamente eseguito a meno che

34
00:02:43,260 --> 00:02:48,180
Quindi in questo caso restituiremo X volte x.

35
00:02:48,870 --> 00:02:52,750
Quindi, se eseguo questo quadratino

36
00:02:52,860 --> 00:03:03,720
di quattro, puoi vedere che mi mostra 16 ma è leggermente diverso da prima.

37
00:03:03,720 --> 00:03:04,430
Il modo in cui è stato stampato 16 vedrai questa freccia qui e questo mi dice che è un valore di ritorno.

38
00:03:04,440 --> 00:03:10,240
Quindi, se solo annullo, non registro qualcosa di proprio come cancella registro per un numero di

39
00:03:10,500 --> 00:03:17,850
stampa quattro, ma proprio sotto puoi vedere che c'è un valore di ritorno nel registro costante in realtà non restituito.

40
00:03:17,850 --> 00:03:23,400
Questo spiega perché abbiamo visto così tanti indefiniti.

41
00:03:23,610 --> 00:03:26,580
Se ti stavi chiedendo cosa sia.

42
00:03:26,580 --> 00:03:28,200
Ho smesso di spiegarlo finché non avremo ottenuto la parola chiave di ritorno.

43
00:03:28,200 --> 00:03:31,480
Quindi ogni funzione restituisce qualcosa.

44
00:03:31,560 --> 00:03:33,730
E se non diciamo esplicitamente cosa restituire restituisce undefined.

45
00:03:33,890 --> 00:03:38,490
Quindi, sembra che avessimo la nostra funzione quadrata e quando

46
00:03:38,490 --> 00:03:45,300
l'avremmo eseguita è tornata indefinita anche se è stata stampata 16 ma è tornata indefinita.

47
00:03:45,300 --> 00:03:48,990
Quindi, per usare il valore ora per catturare l'output di un quadrato

48
00:03:49,050 --> 00:03:57,030
quadrato di quattro, se voglio usarlo da qualche altra parte, posso richiamare questa riga che sembra che questo 4 quadrato sia più quadrato di 4.

49
00:03:57,030 --> 00:04:03,910
E questo funzionerà.

50
00:04:04,140 --> 00:04:05,470
Passerà per un che moltiplica X volte x 16 e poi restituisce 16.

51
00:04:05,660 --> 00:04:11,760
Lo manderà fuori dalla funzione e lo metterà proprio qui.

52
00:04:11,760 --> 00:04:16,170
E così otteniamo quattro quadrati è 16.

53
00:04:16,320 --> 00:04:20,370
L'altra cosa che posso fare con la parola chiave return è

54
00:04:20,370 --> 00:04:24,840
salvarla in una variabile in modo da poter fare qualcosa di simile.

55
00:04:24,840 --> 00:04:25,510
Il risultato Var è uguale a 104.

56
00:04:25,740 --> 00:04:31,440
E ora se guardo i risultati ottengo diecimilaottocentosedici.

57
00:04:32,360 --> 00:04:37,800
Quindi è stata valutata questa chiamata quadrata di 104 che ha restituito 10000 816, che è stato quindi memorizzato nel risultato.

58
00:04:37,800 --> 00:04:47,400
Quindi ho un altro esempio di una funzione che restituisce qualcosa che si chiama maiuscola e contiene una

59
00:04:51,300 --> 00:04:57,120
stringa come la parola Parigi e ciò che fa è la

60
00:04:57,120 --> 00:05:04,440
prima lettera in maiuscolo e restituisce l'intera stringa con quella prima lettera in maiuscolo.

61
00:05:04,440 --> 00:05:06,670
Quindi Parigi si trasforma in Parigi con la capitale P.

62
00:05:06,810 --> 00:05:11,150
Quindi il punto centrale di questa funzione è che altera un po 'i dati

63
00:05:11,330 --> 00:05:17,010
originali, quindi passiamo in stringa e quindi recuperiamo una versione della stringa che ha la prima lettera in maiuscolo.

64
00:05:17,340 --> 00:05:22,540
La logica di come capitalizza effettivamente la prima lettera non è ciò che voglio sottolineare qui.

65
00:05:22,830 --> 00:05:27,450
Quello che voglio sottolineare è che qui ho una città variabile che è Parigi in minuscolo P. E poi sto capitalizzando la città in maiuscolo e salvando il valore di ritorno su una nuova variabile.

66
00:05:27,540 --> 00:05:34,840
Quindi questo è qualcosa che faremo molto eseguiremo una funzione, salvando il valore di ritorno

67
00:05:35,280 --> 00:05:42,080
su una variabile in modo che possiamo usarlo di nuovo da qualche altra parte.

68
00:05:42,090 --> 00:05:47,850
Quindi, se ti stai chiedendo come funziona questa funzione, la prima parte prende la prima lettera.

69
00:05:47,850 --> 00:05:50,010
Quindi è il carattere nell'indice 0 e nel maiuscolo.

70
00:05:50,010 --> 00:05:55,050
Quindi questo ci darebbe la maiuscola P e poi la stringa che prende un numero.

71
00:05:55,080 --> 00:05:58,450
In questo caso 1.

72
00:05:58,590 --> 00:06:04,320
In modo che prende tutto dall'indice 1 in poi.

73
00:06:04,380 --> 00:06:05,800
A R Immagino tutto minuscolo

74
00:06:06,300 --> 00:06:09,530
e lo distrugge insieme al segno più con la P maiuscola

75
00:06:10,080 --> 00:06:16,200
Quindi stiamo capitalizzando la prima lettera e poi prendiamo tutto il resto dopo il primo carattere e combinando i due e restituendoli.

76
00:06:16,200 --> 00:06:21,360
Quindi un altro aspetto della parola chiave return è che interrompe l'esecuzione di una funzione.

77
00:06:21,360 --> 00:06:23,610
Quindi, non appena restituiamo qualcosa, la funzione viene eseguita.

78
00:06:24,360 --> 00:06:29,230
Quindi il punto centrale di una funzione è che richiede una sorta di input e quindi restituisce qualcosa.

79
00:06:29,610 --> 00:06:32,900
Quindi appena ritorna è solo la fine dell'esecuzione della funzione.

80
00:06:33,240 --> 00:06:37,700
Quindi ecco un esempio.

81
00:06:37,710 --> 00:06:41,440
Questa è la stessa funzione maiuscola tranne che con una piccola differenza.

82
00:06:41,640 --> 00:06:43,080
E questo sta controllando se passiamo un numero invece

83
00:06:43,110 --> 00:06:47,450
di una stringa che è ciò che fa questa linea se il tipo di input è uguale al numero, allora torniamo indietro che non è una stringa.

84
00:06:47,460 --> 00:06:54,100
Non vogliamo preoccuparci di nulla di tutto ciò.

85
00:06:54,100 --> 00:07:00,020
Quindi questo ritorno se passiamo e un numero andrà in cortocircuito e questo codice non funziona mai anche

86
00:07:00,210 --> 00:07:02,260
se non c'è alcuna istruzione L.

87
00:07:02,340 --> 00:07:08,640
Quindi questo codice dovrebbe essere eseguito.

88
00:07:08,640 --> 00:07:09,990
In realtà non funziona affatto perché questo cortocircuito.

89
00:07:10,140 --> 00:07:11,960
Se passiamo un numero altrimenti se passiamo in una stringa come Parigi questo non è vero.

90
00:07:12,000 --> 00:07:15,450
Quindi questa dichiarazione di ritorno non viene mai eseguita.

91
00:07:15,480 --> 00:07:20,690
E poi questa dichiarazione di ritorno è sbagliata.

92
00:07:20,760 --> 00:07:22,620
Quindi l'ultima cosa che voglio aggiungere alla fine qui è che ci sono

93
00:07:22,830 --> 00:07:24,990
due diverse sintassi per dichiarare una funzione e la prima è quella che abbiamo usato.

94
00:07:26,040 --> 00:07:31,170
Si chiama dichiarazione di funzione.

95
00:07:31,380 --> 00:07:35,330
Quindi scriviamo la funzione e quindi il nome della nostra funzione.

96
00:07:35,340 --> 00:07:37,410
E poi passiamo gli argomenti dentro e riscriviamo il nostro corpo di funzione all'interno delle due parentesi.

97
00:07:37,980 --> 00:07:41,060
C'è un altro modo di scrivere una funzione chiamata espressione di una funzione.

98
00:07:41,280 --> 00:07:47,220
E il modo in cui lo facciamo è che in realtà scriviamo una variabile in maiuscolo e lo impostiamo uguale a una funzione.

99
00:07:47,250 --> 00:07:50,660
Quindi questi sono due modi per definire funzioni equivalenti.

100
00:07:51,000 --> 00:07:58,560
Questa è una dichiarazione e questa è un'espressione.

101
00:07:59,640 --> 00:08:02,970
Quindi c'è una piccola differenza che è se dichiaro la funzione in questo modo var è uguale alla funzione.

102
00:08:02,970 --> 00:08:05,980
Se ho appena deciso di cambiare in maiuscolo per essere uguale al numero 10 o il numero 15.

103
00:08:06,270 --> 00:08:13,260
La mia funzione è persa.

104
00:08:13,890 --> 00:08:19,970
Quindi ti mostrerò cosa intendo.

105
00:08:20,100 --> 00:08:21,720
Quindi ho intenzione di dichiarare una funzione var.

106
00:08:22,200 --> 00:08:24,000
Say hi è uguale a una funzione e tutte le funzioni non vengono cancellate.

107
00:08:24,840 --> 00:08:27,260
Ciao.

108
00:08:27,300 --> 00:08:36,430
Proprio così.

109
00:08:37,180 --> 00:08:38,240
E così posso chiamare dire ciao e allo stesso modo delle dichiarazioni di funzioni che abbiamo visto.

110
00:08:38,640 --> 00:08:40,350
Ma posso anche decidere che dire hi ora è uguale a 34.

111
00:08:40,990 --> 00:08:47,550
Ora, se mi riferisco a dire ciao non riesco a valutarlo, non

112
00:08:47,910 --> 00:08:54,790
posso più farlo funzionare come una funzione man mano che progrediamo nella classe.

113
00:08:54,880 --> 00:09:03,690
Useremo le dichiarazioni e le espressioni e parleremo anche di più sul perché ne usereste uno

114
00:09:03,690 --> 00:09:04,350
sull'altro.

115
00:09:04,380 --> 00:09:09,510
&nbsp;

116
00:09:09,510 --> 00:09:10,620
&nbsp;
