1
00:00:01,380 --> 00:00:07,980
Bem-vindo no vídeo anterior, aprendemos que, quando a palavra-chave não está dentro de um objeto

2
00:00:08,790 --> 00:00:11,580
declarado, seu valor é o objeto global.

3
00:00:11,820 --> 00:00:16,980
Vamos demonstrar rapidamente o que quero dizer com o objeto declarado no caso de o vídeo anterior ainda te

4
00:00:16,980 --> 00:00:18,180
deixar um pouco confuso.

5
00:00:18,180 --> 00:00:21,250
Lembre-se que o material aqui é bastante desafiador.

6
00:00:21,420 --> 00:00:26,550
Então, tente assistir esses vídeos um par de vezes e digite os exemplos de código para reforçar seu conhecimento.

7
00:00:28,470 --> 00:00:31,310
Eu vou fazer um objeto vazio chamado dados.

8
00:00:31,440 --> 00:00:38,650
O que acabei de fazer é declarado um objeto, o objeto de dados não existe até que eu o declarei.

9
00:00:38,670 --> 00:00:45,920
Agora eu vou anexar uma propriedade a este objeto chamado instrutor e definir o valor igual a LTE.

10
00:00:46,620 --> 00:00:55,150
Agora, nosso objeto de dados que declaramos tem uma chave com o valor de elhi dentro dele.

11
00:00:55,230 --> 00:00:59,200
Isto é o que queremos dizer quando dizemos dentro de um objeto declarado.

12
00:00:59,520 --> 00:01:01,750
Se isso ainda confunde você está tudo bem.

13
00:01:01,800 --> 00:01:07,770
Isso terá mais sentido quando examinaremos a segunda regra e veremos a palavra-chave dentro de um objeto.

14
00:01:08,820 --> 00:01:10,780
Agora vamos terminar com a primeira regra.

15
00:01:11,010 --> 00:01:17,340
Como você pode ver aqui quando colocamos a palavra-chave dentro de uma função, seu valor ainda é o

16
00:01:17,400 --> 00:01:18,290
objeto global.

17
00:01:18,600 --> 00:01:25,800
Lembre-se que dissemos que a regra global se aplica a menos que a palavra-chave esteja dentro de um objeto declarado, mas

18
00:01:26,190 --> 00:01:28,590
está dentro de uma função no momento.

19
00:01:28,950 --> 00:01:36,270
Então, quando chamamos a função, o valor retornado é o objeto da janela.

20
00:01:36,270 --> 00:01:38,340
Agora vejamos um último exemplo.

21
00:01:38,640 --> 00:01:46,060
O que acontece se nós anexamos propriedades à palavra-chave quando seu valor é o objeto global.

22
00:01:46,110 --> 00:01:52,590
E lembre-se quando eu digo Objeto Global, eu significo o objeto de janela em diferentes ambientes javascript.

23
00:01:52,680 --> 00:01:54,410
Esse valor mudará.

24
00:01:54,540 --> 00:01:59,730
Mas, como estamos no navegador, o objeto global é o objeto da janela.

25
00:01:59,730 --> 00:02:05,340
Agora vamos dar uma olhada nas nossas variáveis ​​nesta função nas variáveis ​​desta função.

26
00:02:05,340 --> 00:02:12,100
Nós estamos anexando uma propriedade à palavra-chave essa pessoa chamada e configurando-a igual a Ellie.

27
00:02:12,420 --> 00:02:20,010
Uma vez que a palavra-chave que se refere ao objeto global, qualquer coisa que atribuímos a ela, ela se torna uma variável global,

28
00:02:20,370 --> 00:02:23,340
o que significa que podemos usá-la fora da função.

29
00:02:23,340 --> 00:02:28,930
Isso pode parecer algo que podemos querer fazer, mas isso é realmente uma prática muito ruim.

30
00:02:29,670 --> 00:02:34,680
Vamos revisar rapidamente como variáveis ​​e escopo funcionam em javascript.

31
00:02:34,680 --> 00:02:39,780
Vou declarar uma variável chamada cão e disse que o valor é igual a Rusty.

32
00:02:39,810 --> 00:02:47,100
an inside declarar uma variável chamada pessoa usando a palavra-chave VAR e disse que é igual ao código.

33
00:02:47,100 --> 00:02:50,610
Eu então vou fazer uma função chamada meek person

34
00:02:50,790 --> 00:02:57,420
Como eu declarei essa variável dentro da função e não estou retornando seu valor, não

35
00:02:57,420 --> 00:03:00,430
tenho acesso a ela fora da função.

36
00:03:00,450 --> 00:03:07,410
No entanto, desde que eu declarei meu cão variável no âmbito global eu tenho acesso a ele em todos os lugares.

37
00:03:08,160 --> 00:03:13,830
Agora, podemos resolver o problema de não poder acessar nossa variável pessoa, omitiendo a

38
00:03:13,830 --> 00:03:16,020
palavra-chave VAR dentro de nossa função.

39
00:03:16,020 --> 00:03:18,900
No entanto, esta é uma prática muito ruim.

40
00:03:18,960 --> 00:03:24,900
tenham um valor e, em seguida, atribua esses valores mais tarde em uma função.

41
00:03:25,110 --> 00:03:31,590
Geralmente é recomendável declarar todas as nossas variáveis ​​que queremos usar em múltiplas funções na parte

42
00:03:31,680 --> 00:03:34,370
superior do nosso código, mesmo que não

43
00:03:34,380 --> 00:03:41,550
Infelizmente, uma vez que a palavra-chave é o objeto global, é bastante fácil declarar acidentalmente

44
00:03:41,550 --> 00:03:44,400
variáveis ​​globais dentro de uma função.

45
00:03:44,400 --> 00:03:47,340
Vamos ver um exemplo.

46
00:03:47,340 --> 00:03:54,300
Eu vou fazer uma função chamada erro um dentro definir uma propriedade na palavra-chave que chamou

47
00:03:54,300 --> 00:03:57,060
má idéia para ser igual à cadeia.

48
00:03:57,100 --> 00:03:58,480
Oups.

49
00:03:58,770 --> 00:04:05,400
Agora vou chamar essa função e podemos ver que tenho acesso à minha variável de idéia ruim.

50
00:04:05,400 --> 00:04:09,390
Acabei acidentalmente de fazer uma variável global.

51
00:04:09,390 --> 00:04:16,290
Felizmente, em sim 5, a versão anterior do javascript, algo chamado modo estrito, foi adicionada para nos ajudar.

52
00:04:16,290 --> 00:04:16,440
&nbsp;

53
00:04:16,440 --> 00:04:21,870
Os desenvolvedores de Javascript lêem melhor quando o modo estrito é habilitado.

54
00:04:21,960 --> 00:04:26,460
O que você pode fazer adicionando use rigoroso em aspas duplas.

55
00:04:26,670 --> 00:04:31,760
O valor da palavra-chave quando dentro de uma função é indefinido.

56
00:04:31,800 --> 00:04:34,530
Não é o objeto global.

57
00:04:34,530 --> 00:04:38,870
Isso significa que, se tentarmos anexar propriedades, obtemos um erro de tipo.

58
00:04:38,940 --> 00:04:44,270
Como não podemos anexar propriedades ao indefinido, você pode ter visto esse erro um pouco.

59
00:04:44,280 --> 00:04:50,440
Isso nos impede de criar variáveis ​​globais acidentalmente e nos permite usar as melhores práticas de javascript.

60
00:04:52,140 --> 00:04:57,660
Neste vídeo, revisamos a primeira regra para determinar a palavra-chave e vimos como

61
00:04:57,720 --> 00:05:00,860
podemos criar, acidentalmente, variáveis ​​globais dentro das funções.

62
00:05:00,870 --> 00:05:06,410
Nós também vimos como o modo estrito pode impedir que cometemos um erro no próximo vídeo.

63
00:05:06,450 --> 00:05:12,330
Nós estaremos discutindo a segunda regra e qual o valor da palavra-chave que é quando está dentro

64
00:05:12,330 --> 00:05:14,190
de um objeto declarado, veja lá
