1 00:00:02,630 --> 00:00:09,830 No JavaScript moderno, você também deve estar ciente de dois operadores importantes, pois todos os estão usando 2 00:00:09,830 --> 00:00:11,600 também para o curso. 3 00:00:12,080 --> 00:00:14,110 E isso é para descansar e se espalhar. 4 00:00:14,270 --> 00:00:18,950 Os operadores sabem especificamente que o operador de spread é aquele que usaremos bastante. 5 00:00:19,550 --> 00:00:26,390 Digamos que queremos implementar o padrão em que, quando adicionamos um novo hobby, não editamos a matriz original, 6 00:00:26,390 --> 00:00:30,740 mas criamos uma nova matriz com todos os valores antigos. 7 00:00:31,190 --> 00:00:37,610 E o novo valor é realmente um padrão bastante comum chamado imutabilidade, onde nunca adicionamos 8 00:00:37,610 --> 00:00:41,300 valores existentes, mas sempre os substituímos por cópias. 9 00:00:41,420 --> 00:00:42,950 Além das mudanças. 10 00:00:43,180 --> 00:00:44,270 E isso é tudo um padrão. 11 00:00:44,270 --> 00:00:45,770 Vou usar bastante no curso. 12 00:00:46,310 --> 00:00:52,760 A idéia por trás disso é que evitamos erros, porque sempre temos essa abordagem clara da cópia. 13 00:00:52,910 --> 00:00:58,250 Em seguida, adicione-o e não edite objetos existentes que possam levar a um código mais ilegível. 14 00:00:58,910 --> 00:01:00,320 Agora, copie uma matriz. 15 00:01:00,710 --> 00:01:03,680 Digamos que aqui eu criei o array Kopit. 16 00:01:04,100 --> 00:01:06,320 Temos algumas técnicas possíveis. 17 00:01:06,650 --> 00:01:08,780 Uma delas é usar para cortar o operador. 18 00:01:09,200 --> 00:01:15,260 Agora, se eu exibir arrays copiados lá em baixo e executar o nó jogar xadrez, vejo esportes e culinária. 19 00:01:15,260 --> 00:01:16,520 Então eu realmente copiei. 20 00:01:17,000 --> 00:01:19,520 Fatia simplesmente copia uma matriz. 21 00:01:19,730 --> 00:01:24,800 Podemos passar argumentos para restringir o intervalo de elementos que queremos copiar sem argumentos. 22 00:01:24,860 --> 00:01:26,270 Copiamos toda a matriz. 23 00:01:27,320 --> 00:01:30,470 Agora, em vez de cortar, também há uma técnica diferente. 24 00:01:31,070 --> 00:01:35,570 Podemos criar uma nova matriz com colchetes e adicionar o olhar de Hobbie. 25 00:01:35,570 --> 00:01:35,920 Direita? 26 00:01:36,410 --> 00:01:38,540 Agora, o que acontece se executarmos isso? 27 00:01:38,900 --> 00:01:40,550 O que veremos no console? 28 00:01:41,590 --> 00:01:43,880 Bem, se eu pressionar enter, nós vemos. 29 00:01:44,170 --> 00:01:50,080 Bem, parece uma cópia à primeira vista, mas na verdade é uma matriz sem matriz. 30 00:01:50,530 --> 00:01:53,290 Portanto, a matriz externa possui apenas um elemento. 31 00:01:53,510 --> 00:01:54,700 E essa é a matriz interna. 32 00:01:55,150 --> 00:01:56,290 Portanto, não é uma cópia. 33 00:01:56,470 --> 00:02:00,190 É apenas uma nova matriz onde o primeiro elemento é a matriz antiga. 34 00:02:00,370 --> 00:02:02,590 E com isso, quero dizer exatamente o mesmo objeto. 35 00:02:02,680 --> 00:02:03,850 Não é uma cópia disso. 36 00:02:04,810 --> 00:02:06,320 Então nós apenas criamos um. 37 00:02:07,690 --> 00:02:08,860 Matriz aninhada aqui. 38 00:02:09,050 --> 00:02:11,620 Isso, é claro, não era o que queríamos fazer aqui. 39 00:02:12,340 --> 00:02:17,400 E aqui podemos usar o operador de propagação, o operador de propagação são pontos livres. 40 00:02:17,440 --> 00:02:20,680 Podemos adicionar na frente de uma matriz ou de um objeto. 41 00:02:21,460 --> 00:02:25,900 E esses pontos livres são operadores como um mais ou um R. 42 00:02:26,830 --> 00:02:28,120 E eles fazem uma coisa. 43 00:02:28,930 --> 00:02:38,590 Eles pegam essa matriz ou objeto após o operador e retiram todos os elementos ou propriedades. 44 00:02:38,650 --> 00:02:47,710 Então, todos os elementos de uma matriz ou todas as propriedades de um objeto e colocá-lo no que quer que esteja ao redor do spread da 45 00:02:47,740 --> 00:02:48,430 dívida. 46 00:02:48,460 --> 00:02:52,210 Operador Nesse caso, temos colchetes ao redor do spread. 47 00:02:52,210 --> 00:02:59,410 Operador E, portanto, todos os elementos extraídos da matriz existente são adicionados à nova 48 00:02:59,410 --> 00:03:00,040 matriz. 49 00:03:00,730 --> 00:03:06,010 E, portanto, se agora eu executar este outono novamente, solto e o salvo antes de executá-lo novamente. 50 00:03:06,550 --> 00:03:09,970 Agora vemos que esse foi o resultado da abordagem antiga, a matriz aninhada. 51 00:03:10,420 --> 00:03:12,520 Agora não temos mais matriz aninhada. 52 00:03:12,610 --> 00:03:13,810 Temos uma matriz. 53 00:03:13,960 --> 00:03:21,160 E agora é uma cópia do antigo, porque pegamos esses operadores espalhados para extrair esses elementos e 54 00:03:21,370 --> 00:03:24,880 os adicionamos um a um à nova matriz. 55 00:03:25,720 --> 00:03:26,830 Então isso é algo que você verá. 56 00:03:26,830 --> 00:03:30,760 Fazemos muito para copiar matrizes ou objetos existentes. 57 00:03:30,760 --> 00:03:32,350 Sterrett funcionaria da mesma maneira. 58 00:03:32,860 --> 00:03:37,780 Poderíamos ter nossa pessoa copiada usando chaves. 59 00:03:38,230 --> 00:03:42,280 Em seguida, o operador de propagação, os pontos livres e depois a pessoa idosa. 60 00:03:42,910 --> 00:03:45,670 E agora, se um console trava uma pessoa copiada aqui. 61 00:03:47,860 --> 00:03:49,880 E eu executo esta queda novamente. 62 00:03:50,240 --> 00:03:56,750 Esta é a nossa pessoa Kopit aqui porque estou retirando todos esses elementos desse objeto e adiciono-o a 63 00:03:56,750 --> 00:03:57,920 um novo objeto. 64 00:03:58,130 --> 00:04:00,890 Portanto, isso funciona para objetos e matrizes. 65 00:04:01,100 --> 00:04:02,750 E é um Syntex. 66 00:04:02,810 --> 00:04:04,520 Vou usar um pouco neste curso. 67 00:04:05,150 --> 00:04:06,230 Agora faz isso para se espalhar. 68 00:04:06,260 --> 00:04:14,150 Operador, eu também mencionei o operador descanso e o operador descanso é essencialmente o oposto. 69 00:04:15,270 --> 00:04:18,560 Digamos que eu tenho uma função que vou nomear duas matrizes. 70 00:04:19,320 --> 00:04:20,400 É uma função de seta. 71 00:04:21,090 --> 00:04:26,160 E aí espero que os argumentos sejam um arco livre. 72 00:04:27,320 --> 00:04:30,050 Eu quero retornar uma matriz que contém esses argumentos. 73 00:04:30,470 --> 00:04:32,600 Gibson emitido em um sinal de igual aqui. 74 00:04:32,900 --> 00:04:38,810 Então, quando eu retornar uma matriz que contém esses argumentos, eu posso retornar colchetes aqui, é claro. 75 00:04:39,260 --> 00:04:41,300 E então o primeiro elemento será o AAG. 76 00:04:41,960 --> 00:04:45,710 Então eu tenho ARC dois é o segundo elemento e sem arco é o primeiro elemento. 77 00:04:47,160 --> 00:04:57,410 Agora eu posso consolar o bloqueio do array e passo um, dois e três como argumentos livres para essa função. 78 00:04:58,420 --> 00:05:03,070 Se eu agora executar jogo de xadrez, vemos uma matriz com um, dois e três D três elementos. 79 00:05:03,190 --> 00:05:06,490 Portanto, isso está funcionando, mas isso não é totalmente flexível. 80 00:05:06,910 --> 00:05:08,830 E se quisermos passar por argumentos? 81 00:05:09,280 --> 00:05:10,660 Bem, podemos chamar assim. 82 00:05:10,990 --> 00:05:12,660 JavaScript realmente permite isso. 83 00:05:12,760 --> 00:05:16,810 Mas é claro que não é adicionado porque trabalhamos apenas com argumentos livres aqui. 84 00:05:17,560 --> 00:05:20,740 O que poderíamos fazer é usar o chamado operador de descanso, querida. 85 00:05:22,350 --> 00:05:23,190 Ponto ponto Ponto. 86 00:05:23,400 --> 00:05:24,600 E então apenas pergunta. 87 00:05:25,200 --> 00:05:27,630 E isso realmente leva todos os argumentos. 88 00:05:27,960 --> 00:05:29,550 Quantos podemos especificar. 89 00:05:29,570 --> 00:05:30,420 Isso não importa. 90 00:05:31,140 --> 00:05:33,660 E os agrupará em uma matriz para nós. 91 00:05:34,110 --> 00:05:37,680 Portanto, aqui os ARGs serão uma matriz e eu posso retornar isso de fato. 92 00:05:38,460 --> 00:05:46,800 E agora, se eu executar isso com dois array obtendo argumentos, veja agora eu tenho meu array com quatro 93 00:05:46,800 --> 00:05:47,760 argumentos aqui. 94 00:05:48,270 --> 00:05:51,120 Portanto, o operador restante se parece com o operador de propagação. 95 00:05:51,240 --> 00:05:52,080 Pontos grátis. 96 00:05:52,350 --> 00:05:55,710 E é o lugar onde você o usa que define como você o chama. 97 00:05:56,400 --> 00:06:02,700 Você está usando para extrair elementos ou propriedades de matrizes ou objetos? 98 00:06:03,090 --> 00:06:05,230 Então seria o operador de spread. 99 00:06:06,090 --> 00:06:11,970 Você está usando para mesclar vários argumentos em uma matriz? 100 00:06:12,750 --> 00:06:15,480 E você o usa na lista de argumentos de uma função. 101 00:06:15,840 --> 00:06:18,030 Então é o operador restante. 102 00:06:18,480 --> 00:06:22,470 É o mesmo operador do Syntex ou da perspectiva do Syntex. 103 00:06:22,650 --> 00:06:25,710 O nome difere dependendo do local onde você o usa. 104 00:06:26,340 --> 00:06:27,360 Eu não vou usar isso. 105 00:06:27,360 --> 00:06:29,850 Alguns levam muito neste curso, mas ainda é bom saber. 106 00:06:30,120 --> 00:06:35,780 Mas, sendo capaz de extrair elementos ou propriedades, dados, algo que você deve entender porque o pai é um Syntex, 107 00:06:35,790 --> 00:06:38,640 você me verá usar bastante ao longo do curso.