1
00:00:00,270 --> 00:00:05,310
Neste vídeo, vamos discutir um conceito chamado scope em javascript.

2
00:00:05,310 --> 00:00:09,640
O escopo refere-se ao contexto em que algum código está sendo executado.

3
00:00:09,900 --> 00:00:14,610
Então, onde quer que tenhamos um código, digamos que está dentro de uma função chamada Say hello.

4
00:00:15,210 --> 00:00:18,550
Esse código está sendo executado em um contexto específico.

5
00:00:18,720 --> 00:00:23,970
E por isso pode ter algumas variáveis ​​e pode ter algumas propriedades e o escopo

6
00:00:23,970 --> 00:00:27,620
está se referindo às variáveis ​​e propriedades visíveis nessa função.

7
00:00:27,750 --> 00:00:32,820
E isso poderia ser diferente dentro de outra função ou se tivéssemos funções aninhadas dentro uma

8
00:00:32,820 --> 00:00:33,290
da outra.

9
00:00:33,360 --> 00:00:34,740
O que é algo que você pode fazer.

10
00:00:34,950 --> 00:00:39,070
Podemos ter diferentes escopos e diferentes variáveis ​​são visíveis.

11
00:00:39,150 --> 00:00:41,490
Então, isso terá sentido com alguns exemplos.

12
00:00:41,490 --> 00:00:46,830
Este é definitivamente um tópico notoriamente difícil e complicado, mas vou tentar o meu melhor para

13
00:00:46,830 --> 00:00:47,950
simplificá-lo para você.

14
00:00:48,660 --> 00:00:50,880
Vamos começar com algo simples aqui.

15
00:00:50,880 --> 00:01:03,720
Declare a função faça matemática e tudo o que fazemos matemática, faremos a declaração x igual a

16
00:01:03,720 --> 00:01:09,390
40 e então será cancelar esse log X. correr fazer matemática e eles recebem 40 impressos.

17
00:01:09,690 --> 00:01:10,980
Então, vamos

18
00:01:14,040 --> 00:01:15,970
Então, dentro desta função neste escopo, chamaríamos x é igual a 40.

19
00:01:16,320 --> 00:01:22,720
No entanto, fora da função, se eu tentar acessar o X o que você espera que aconteça.

20
00:01:22,740 --> 00:01:28,760
Recebo um erro que me diz que x não está definido.

21
00:01:29,760 --> 00:01:32,810
Então, o que isso nos mostra é que temos dois escopos diferentes dentro dessa função é um contexto.

22
00:01:32,880 --> 00:01:38,650
X está definido aqui, mas fora disso e o

23
00:01:38,760 --> 00:01:45,150
que chamaríamos de âmbito global, não estamos dentro de nenhuma função.

24
00:01:45,150 --> 00:01:46,200
Quando escrevo X, recebo um erro porque não sabe o que é X.

25
00:01:46,350 --> 00:01:49,900
Não é visível nesse escopo.

26
00:01:49,920 --> 00:01:52,840
Então, se definimos x para x iguales, basta chamar isso de baixo.

27
00:01:53,010 --> 00:02:01,200
Agora, se eu acessar o X quando estou fora desta função apenas no escopo global que recebo.

28
00:02:01,260 --> 00:02:07,020
Olá.

29
00:02:07,030 --> 00:02:07,810
Então, neste contexto, X é oi.

30
00:02:08,160 --> 00:02:10,450
Mas se eu executar novamente matemática, o que você espera que aconteça desta vez.

31
00:02:10,770 --> 00:02:17,200
Ainda está dentro deste contexto.

32
00:02:17,400 --> 00:02:21,180
Então isso é realmente importante.

33
00:02:21,180 --> 00:02:22,490
Quando criamos uma função, tem seu próprio escopo seu próprio conjunto de variáveis.

34
00:02:22,800 --> 00:02:27,250
Isso não significa que, em vez de uma

35
00:02:27,510 --> 00:02:33,060
função, não podemos acessar variáveis ​​definidas fora da função.

36
00:02:33,060 --> 00:02:33,770
Então vou mostrar um exemplo.

37
00:02:33,960 --> 00:02:35,290
Eu vou limpar

38
00:02:35,520 --> 00:02:42,890
tudo aqui e desta vez vamos usar uma variável variável Y y é igual a noventa e nove.

39
00:02:42,890 --> 00:02:43,700
Então, no escopo global eu posso acessar y.

40
00:02:44,280 --> 00:02:47,510
mais matemática se quiser cancelar esse registro.

41
00:02:47,610 --> 00:02:52,380
Agora, se eu declarar uma função Vamos chamar isso, faça

42
00:02:56,100 --> 00:02:58,260
Por que você acha que terá um erro.

43
00:02:58,260 --> 00:03:01,220
Ou isso funcionará bem.

44
00:03:01,500 --> 00:03:03,360
Vamos tentar fazer mais matemática com parênteses.

45
00:03:04,230 --> 00:03:08,480
E isso me dá 99.

46
00:03:08,850 --> 00:03:10,420
Então, o que isso nos

47
00:03:10,830 --> 00:03:17,310
mostra aqui é que, quando definimos algo fora de uma função, ainda temos acesso a ele dentro dessa função.

48
00:03:17,310 --> 00:03:19,520
Pense nisso como um escopo infantil.

49
00:03:19,530 --> 00:03:21,780
Isso é mais específico que está sendo perfurado

50
00:03:21,900 --> 00:03:27,630
em um nível mais profundo e os escopos filho têm acesso a coisas para encontrar no escopo dos pais.

51
00:03:27,630 --> 00:03:30,200
Então, se essa analogia o ajuda a seguir em frente e correr com ele.

52
00:03:30,300 --> 00:03:32,900
Mas basicamente para resumir se definimos uma variável fora da função, podemos usá-la dentro da função.

53
00:03:33,090 --> 00:03:38,530
Mas o contrário não é verdade.

54
00:03:39,210 --> 00:03:41,840
Então, aqui está outro exemplo.

55
00:03:43,020 --> 00:03:44,390
E se dentro de fazer mais matemática eu realmente mudei o valor de y.

56
00:03:44,460 --> 00:03:50,290
Então eu digo porque é igual a 100.

57
00:03:50,370 --> 00:03:56,260
E então eu imprimo y.

58
00:03:56,550 --> 00:03:58,200
O que você acha que acontece neste caso.

59
00:03:58,710 --> 00:04:02,090
Isso é uma tentativa.

60
00:04:02,330 --> 00:04:03,260
Então vamos ver o que é agora.

61
00:04:03,510 --> 00:04:05,060
São noventa e nove.

62
00:04:05,070 --> 00:04:06,130
E se eu

63
00:04:06,430 --> 00:04:07,920
fizer mais matemática, imprime 100.

64
00:04:13,050 --> 00:04:14,910
Então, dentro da função y está em cem e imprimiu 100.

65
00:04:14,910 --> 00:04:19,080
Mas sobre como fora da função.

66
00:04:19,080 --> 00:04:21,370
O que acontece se eu apenas digitar Y.

67
00:04:21,720 --> 00:04:23,960
Também é 100.

68
00:04:24,210 --> 00:04:26,160
Então, o que aconteceu aqui é que eu declaro primeiro como '99 fora da função no escopo global.

69
00:04:26,610 --> 00:04:33,930
E então dentro da função eu mudei y.

70
00:04:34,380 --> 00:04:37,820
Então, isso não declarou uma nova variável

71
00:04:37,980 --> 00:04:44,850
e no escopo que realmente encontrou o antigo que foi declarado aqui e mudou.

72
00:04:44,850 --> 00:04:47,670
Então aqui.

73
00:04:47,670 --> 00:04:49,770
Por que é cem e fora, porque é também 100.

74
00:04:49,770 --> 00:04:54,280
Então, aqui é mais um exemplo, vamos limpar tudo isso.

75
00:04:54,300 --> 00:04:57,140
Vamos fazer uma frase variável igual a alta e depois vamos fazer uma função fazer algo.

76
00:04:57,420 --> 00:05:07,380
Eu sei que esses nomes não são extremamente criativos e, em vez de fazer algo, vou tentar mudar.

77
00:05:07,380 --> 00:05:16,720
Eu vou fazer uma nova frase VAR igual ao adeus.

78
00:05:17,010 --> 00:05:23,350
E então, na próxima linha, vou imprimi-lo.

79
00:05:24,270 --> 00:05:30,520
Então, o que você espera que aconteça aqui?

80
00:05:30,570 --> 00:05:33,730
algo que imprima adeus.

81
00:05:34,830 --> 00:05:36,840
Se corremos, faça

82
00:05:40,110 --> 00:05:42,100
Então o que isso nos diz é em vez de fazer algo para A's é igual a adeus.

83
00:05:42,120 --> 00:05:47,570
Mas fora dela, o que é uma frase igual a que ainda está alto.

84
00:05:47,880 --> 00:05:52,190
Então, adicionando muito aqui a frase var é igual adeus.

85
00:05:52,500 --> 00:05:56,290
Isso nos torna uma nova variável ao invés de usar o definido aqui.

86
00:05:56,430 --> 00:06:00,780
Isso faz uma nova variável de frase que existe somente neste escopo somente dentro de fazer algo é redigido adeus.

87
00:06:00,780 --> 00:06:07,500
Então, dentro, é adeus lá fora, ficamos Olá, lá

88
00:06:08,250 --> 00:06:12,020
&nbsp;
