1
00:00:01,380 --> 00:00:07,980
Bentornato nel video precedente, apprendiamo che quando la parola chiave non si trova all'interno di un oggetto

2
00:00:08,790 --> 00:00:11,580
dichiarato, il suo valore è l'oggetto globale.

3
00:00:11,820 --> 00:00:16,980
Dimostriamo rapidamente cosa intendo per oggetto dichiarato nel caso in cui il video precedente ti abbia lasciato

4
00:00:16,980 --> 00:00:18,180
ancora un po 'confuso.

5
00:00:18,180 --> 00:00:21,250
Ricorda che il materiale qui è piuttosto impegnativo.

6
00:00:21,420 --> 00:00:26,550
Quindi prova a guardare questi video un paio di volte e a digitare gli esempi di codice per rafforzare le tue conoscenze.

7
00:00:28,470 --> 00:00:31,310
Ho intenzione di creare un oggetto vuoto chiamato dati.

8
00:00:31,440 --> 00:00:38,650
Quello che ho appena fatto è dichiarato un oggetto che l'oggetto dati non esisteva finché non l'ho dichiarato.

9
00:00:38,670 --> 00:00:45,920
Ora ho intenzione di allegare una proprietà su questo oggetto chiamato istruttore e impostare il valore uguale a LTE.

10
00:00:46,620 --> 00:00:55,150
Ora il nostro oggetto di dati che abbiamo dichiarato ha una chiave con il valore di elhi al suo interno.

11
00:00:55,230 --> 00:00:59,200
Questo è ciò che intendiamo quando diciamo all'interno di un oggetto dichiarato.

12
00:00:59,520 --> 00:01:01,750
Se questo ti confonde ancora, va bene.

13
00:01:01,800 --> 00:01:07,770
Avrà ancora più senso quando esamineremo la seconda regola e vedremo la parola chiave all'interno di un oggetto.

14
00:01:08,820 --> 00:01:10,780
Ora finiamo con la prima regola.

15
00:01:11,010 --> 00:01:17,340
Come puoi vedere qui quando inseriamo la parola chiave, all'interno di una funzione il suo valore è ancora

16
00:01:17,400 --> 00:01:18,290
l'oggetto globale.

17
00:01:18,600 --> 00:01:25,800
Ricorda che abbiamo detto che la regola globale si applica a meno che la parola chiave non sia all'interno di un oggetto

18
00:01:26,190 --> 00:01:28,590
dichiarato ma all'interno di una funzione al momento.

19
00:01:28,950 --> 00:01:36,270
Quindi quando chiamiamo la funzione ciò che è il valore restituito è l'oggetto finestra.

20
00:01:36,270 --> 00:01:38,340
Ora guardiamo un ultimo esempio.

21
00:01:38,640 --> 00:01:46,060
Cosa succede se alle proprietà vengono associate proprietà quando il suo valore è l'oggetto globale.

22
00:01:46,110 --> 00:01:52,590
E ricorda quando dico Oggetto Globale intendo l'oggetto finestra in diversi ambienti javascript.

23
00:01:52,680 --> 00:01:54,410
Questo valore cambierà.

24
00:01:54,540 --> 00:01:59,730
Ma dal momento che siamo nel browser, l'oggetto globale è l'oggetto finestra.

25
00:01:59,730 --> 00:02:05,340
Ora diamo un'occhiata alle nostre variabili in questa funzione nelle variabili in questa funzione.

26
00:02:05,340 --> 00:02:12,100
Alleghiamo una proprietà alla parola chiave chiamata Persona e impostandola come uguale a Ellie.

27
00:02:12,420 --> 00:02:20,010
Dal momento che la parola chiave si riferisce all'oggetto globale, qualsiasi cosa vi attacchiamo diventa una variabile globale che significa

28
00:02:20,370 --> 00:02:23,340
che possiamo usarla al di fuori della funzione.

29
00:02:23,340 --> 00:02:28,930
Questo può sembrare qualcosa che potremmo voler fare, ma questa è in realtà una pessima pratica.

30
00:02:29,670 --> 00:02:34,680
Rivediamo rapidamente come variabili e scope funzionano in javascript.

31
00:02:34,680 --> 00:02:39,780
Vado a dichiarare una variabile chiamata cane e detto il valore uguale a Rusty.

32
00:02:39,810 --> 00:02:47,100
internal dichiarare una variabile chiamata person usando la parola chiave VAR e detta uguale al codice.

33
00:02:47,100 --> 00:02:50,610
Poi farò una funzione chiamata mite person an

34
00:02:50,790 --> 00:02:57,420
Dal momento che ho dichiarato questa variabile all'interno della funzione e non restituisco il suo valore, non ho

35
00:02:57,420 --> 00:03:00,430
accesso ad essa al di fuori della funzione.

36
00:03:00,450 --> 00:03:07,410
Tuttavia, dal momento che ho dichiarato la mia variabile di cane nell'ambito globale, ho accesso ad esso ovunque.

37
00:03:08,160 --> 00:03:13,830
Ora possiamo aggirare il problema di non essere in grado di accedere alla nostra variabile persona omettendo la

38
00:03:13,830 --> 00:03:16,020
parola chiave VAR all'interno della nostra funzione.

39
00:03:16,020 --> 00:03:18,900
Tuttavia questa è una pessima pratica.

40
00:03:18,960 --> 00:03:24,900
hanno un valore e quindi assegnare tali valori in un secondo momento in una funzione.

41
00:03:25,110 --> 00:03:31,590
In genere è consigliabile dichiarare tutte le nostre variabili che vogliamo utilizzare in più funzioni nella parte

42
00:03:31,680 --> 00:03:34,370
superiore del nostro codice, anche se non

43
00:03:34,380 --> 00:03:41,550
Sfortunatamente, dato che la parola chiave è l'oggetto globale, è abbastanza facile dichiarare accidentalmente

44
00:03:41,550 --> 00:03:44,400
variabili globali all'interno di una funzione.

45
00:03:44,400 --> 00:03:47,340
Vediamo un esempio.

46
00:03:47,340 --> 00:03:54,300
Ho intenzione di fare una funzione chiamata errore all'interno di una proprietà sulla parola chiave chiamata

47
00:03:54,300 --> 00:03:57,060
cattiva idea per essere uguale alla stringa.

48
00:03:57,100 --> 00:03:58,480
Ops.

49
00:03:58,770 --> 00:04:05,400
Ora chiamerò quella funzione e possiamo vedere che ho accesso alla mia variabile idea cattiva.

50
00:04:05,400 --> 00:04:09,390
Ho accidentalmente creato una variabile globale.

51
00:04:09,390 --> 00:04:16,290
Fortunatamente in si 5 è stata aggiunta la precedente versione di javascript che è stata chiamata modalità rigorosa per aiutarci.

52
00:04:16,290 --> 00:04:16,440
&nbsp;

53
00:04:16,440 --> 00:04:21,870
Gli sviluppatori di Javascript leggono meglio far fronte quando la modalità rigorosa è abilitata.

54
00:04:21,960 --> 00:04:26,460
Che puoi fare aggiungendo l'uso rigoroso tra virgolette doppie.

55
00:04:26,670 --> 00:04:31,760
Il valore della parola chiave questo quando all'interno di una funzione non è definito.

56
00:04:31,800 --> 00:04:34,530
Non è l'oggetto globale.

57
00:04:34,530 --> 00:04:38,870
Ciò significa che se proviamo ad associarvi delle proprietà, si ottiene un errore di tipo.

58
00:04:38,940 --> 00:04:44,270
Dal momento che non possiamo associare le proprietà a undefined potresti aver visto questo errore un po '.

59
00:04:44,280 --> 00:04:50,440
Questo ci impedisce di creare accidentalmente variabili globali e ci consente di utilizzare le best practice di javascript.

60
00:04:52,140 --> 00:04:57,660
In questo video abbiamo esaminato la prima regola per determinare la parola chiave e abbiamo visto

61
00:04:57,720 --> 00:05:00,860
come possiamo creare accidentalmente variabili globali all'interno delle funzioni.

62
00:05:00,870 --> 00:05:06,410
Abbiamo anche visto come la modalità rigorosa può impedirci di commettere questo errore nel prossimo video.

63
00:05:06,450 --> 00:05:12,330
Discuteremo la seconda regola e quale sarà il valore della parola chiave quando si trova

64
00:05:12,330 --> 00:05:14,190
all'interno di un oggetto dichiarato
