1 00:00:02,630 --> 00:00:09,830 En JavaScript moderno, hay dos operadores importantes que también debe conocer, ya que todos los usarán también 2 00:00:09,830 --> 00:00:11,600 para el curso. 3 00:00:12,080 --> 00:00:14,110 Y eso es descansar y extenderse. 4 00:00:14,270 --> 00:00:18,950 Los operadores saben específicamente que el operador de propagación es uno que usaremos bastante. 5 00:00:19,550 --> 00:00:26,390 Digamos que queremos implementar el patrón donde cuando agregamos un nuevo pasatiempo, no editamos la matriz original, sino 6 00:00:26,390 --> 00:00:30,740 que creamos una nueva matriz con todos los valores antiguos. 7 00:00:31,190 --> 00:00:37,610 Y el nuevo valor es en realidad un patrón bastante común llamado inmutabilidad, donde nunca agregamos 8 00:00:37,610 --> 00:00:41,300 valores existentes, pero siempre los reemplazamos con copias. 9 00:00:41,420 --> 00:00:42,950 Además de los cambios. 10 00:00:43,180 --> 00:00:44,270 Y eso es todo un patrón. 11 00:00:44,270 --> 00:00:45,770 Usaré bastante en el curso. 12 00:00:46,310 --> 00:00:52,760 La idea detrás de eso es que evitamos errores porque siempre tenemos este enfoque claro de copia. 13 00:00:52,910 --> 00:00:58,250 Luego agréguelo y no edite los objetos existentes que podrían conducir a un código más ilegible. 14 00:00:58,910 --> 00:01:00,320 Ahora para copiar una matriz. 15 00:01:00,710 --> 00:01:03,680 Digamos aquí que creo la matriz Kopit. 16 00:01:04,100 --> 00:01:06,320 Tenemos un par de posibles técnicas. 17 00:01:06,650 --> 00:01:08,780 Uno de ellos es utilizar para cortar el operador. 18 00:01:09,200 --> 00:01:15,260 Ahora, si imprimo matrices copiadas allí y ejecuto el juego de nodos ajedrez, veo deportes y cocina. 19 00:01:15,260 --> 00:01:16,520 Así que de hecho lo copié. 20 00:01:17,000 --> 00:01:19,520 Slice simplemente copia una matriz. 21 00:01:19,730 --> 00:01:24,800 Podemos pasar argumentos para reducir el rango de elementos que queremos copiar sin argumentos. 22 00:01:24,860 --> 00:01:26,270 Copiamos toda la matriz. 23 00:01:27,320 --> 00:01:30,470 Ahora, en lugar de cortar, también hay una técnica diferente. 24 00:01:31,070 --> 00:01:35,570 Podemos crear una nueva matriz con corchetes y podríamos agregar la mirada de Hobbie. 25 00:01:35,570 --> 00:01:35,920 ¿Derecha? 26 00:01:36,410 --> 00:01:38,540 ¿Qué pasa si ejecutamos esto? 27 00:01:38,900 --> 00:01:40,550 ¿Qué veremos en la consola? 28 00:01:41,590 --> 00:01:43,880 Bueno, si presiono enter, ya vemos. 29 00:01:44,170 --> 00:01:50,080 Bueno, parece una copia a primera vista, pero en realidad es una matriz sin matriz. 30 00:01:50,530 --> 00:01:53,290 Entonces, la matriz externa tiene solo un elemento. 31 00:01:53,510 --> 00:01:54,700 Y esa es la matriz interna. 32 00:01:55,150 --> 00:01:56,290 Entonces no es una copia. 33 00:01:56,470 --> 00:02:00,190 Es solo una nueva matriz donde el primer elemento es la matriz anterior. 34 00:02:00,370 --> 00:02:02,590 Y con eso, quiero decir exactamente el mismo objeto. 35 00:02:02,680 --> 00:02:03,850 No es una copia de eso. 36 00:02:04,810 --> 00:02:06,320 Así que acabamos de crear un. 37 00:02:07,690 --> 00:02:08,860 Matriz anidada aquí. 38 00:02:09,050 --> 00:02:11,620 Eso, por supuesto, no era lo que queríamos hacer aquí. 39 00:02:12,340 --> 00:02:17,400 Y aquí podemos usar para extender el operador, el operador de propagación son puntos libres. 40 00:02:17,440 --> 00:02:20,680 Podemos agregar delante de una matriz o de un objeto. 41 00:02:21,460 --> 00:02:25,900 Y estos puntos libres son operadores solo como un plus o un menos R. 42 00:02:26,830 --> 00:02:28,120 Y hacen una cosa. 43 00:02:28,930 --> 00:02:38,590 Toman estas matrices u objetos después del operador y extraen todos los elementos o propiedades. 44 00:02:38,650 --> 00:02:47,710 Entonces, todos los elementos de una matriz o todas las propiedades de un objeto y ponerlo en lo que sea que esté alrededor del diferencial de 45 00:02:47,740 --> 00:02:48,430 deuda. 46 00:02:48,460 --> 00:02:52,210 Operador En este caso, tenemos corchetes alrededor del margen. 47 00:02:52,210 --> 00:02:59,410 Operador Y, por lo tanto, todos los elementos que se extraen de la matriz existente se agregan a la nueva 48 00:02:59,410 --> 00:03:00,040 matriz. 49 00:03:00,730 --> 00:03:06,010 Y por lo tanto, si ahora vuelvo a ejecutar este otoño, llora y lo guardo antes de volver a ejecutarlo. 50 00:03:06,550 --> 00:03:09,970 Ahora vemos que esta fue la salida del antiguo enfoque, la matriz anidada. 51 00:03:10,420 --> 00:03:12,520 Ahora ya no tenemos una matriz anidada. 52 00:03:12,610 --> 00:03:13,810 Tenemos una matriz. 53 00:03:13,960 --> 00:03:21,160 Y esta es ahora una copia de la anterior, porque tomamos estos operadores de propagación para extraer estos elementos 54 00:03:21,370 --> 00:03:24,880 y agregarlos uno por uno a la nueva matriz. 55 00:03:25,720 --> 00:03:26,830 Entonces esto es algo que verás. 56 00:03:26,830 --> 00:03:30,760 Hacemos mucho para copiar matrices u objetos existentes. 57 00:03:30,760 --> 00:03:32,350 Sterrett trabajaría de la misma manera. 58 00:03:32,860 --> 00:03:37,780 Podríamos tener a nuestra persona copiada usando llaves. 59 00:03:38,230 --> 00:03:42,280 Luego el operador de propagación, los puntos libres y luego la persona mayor. 60 00:03:42,910 --> 00:03:45,670 Y ahora si una consola bloqueó a una persona copiada aquí. 61 00:03:47,860 --> 00:03:49,880 Y ejecuto este otoño otra vez. 62 00:03:50,240 --> 00:03:56,750 Esta es nuestra persona Kopit aquí porque estoy sacando todos estos elementos de ese objeto y lo agrego a 63 00:03:56,750 --> 00:03:57,920 un nuevo objeto. 64 00:03:58,130 --> 00:04:00,890 Entonces esto funciona tanto para objetos como para matrices. 65 00:04:01,100 --> 00:04:02,750 Y es un Syntex. 66 00:04:02,810 --> 00:04:04,520 Usaré bastante en este curso. 67 00:04:05,150 --> 00:04:06,230 Ahora hace esto para extenderse. 68 00:04:06,260 --> 00:04:14,150 Operador, también mencioné el operador de descanso y el operador de descanso es esencialmente lo contrario. 69 00:04:15,270 --> 00:04:18,560 Digamos que tengo una función que nombraré dos matrices. 70 00:04:19,320 --> 00:04:20,400 Es una función de flecha. 71 00:04:21,090 --> 00:04:26,160 Y allí espero que los argumentos sean de un arco a otro. 72 00:04:27,320 --> 00:04:30,050 Quiero devolver una matriz que contiene estos argumentos. 73 00:04:30,470 --> 00:04:32,600 Gibson emitió en un signo igual aquí. 74 00:04:32,900 --> 00:04:38,810 Entonces, cuando devuelvo una matriz que contiene estos argumentos, puedo devolver corchetes aquí, por supuesto. 75 00:04:39,260 --> 00:04:41,300 Y luego el primer elemento será AAG uno. 76 00:04:41,960 --> 00:04:45,710 Entonces tengo ARC dos es el segundo elemento y arc free es el primer elemento. 77 00:04:47,160 --> 00:04:57,410 Ahora puedo bloquear la consola a la matriz y paso uno, dos y tres como argumentos libres para esa función. 78 00:04:58,420 --> 00:05:03,070 Si ahora ejecuto jugar ajedrez, vemos una matriz con uno, dos y tres elementos D tres. 79 00:05:03,190 --> 00:05:06,490 Entonces esto está funcionando, pero esto no es totalmente flexible. 80 00:05:06,910 --> 00:05:08,830 ¿Qué pasa si queremos pasar por argumentos? 81 00:05:09,280 --> 00:05:10,660 Bueno, podríamos llamarlo así. 82 00:05:10,990 --> 00:05:12,660 JavaScript en realidad lo permite. 83 00:05:12,760 --> 00:05:16,810 Pero, por supuesto, no se agrega porque aquí solo trabajamos con argumentos libres. 84 00:05:17,560 --> 00:05:20,740 Podríamos hacer es usar el llamado operador de descanso, querida. 85 00:05:22,350 --> 00:05:23,190 Punto punto punto. 86 00:05:23,400 --> 00:05:24,600 Y luego solo pregunta. 87 00:05:25,200 --> 00:05:27,630 Y esto realmente tomará todos los argumentos. 88 00:05:27,960 --> 00:05:29,550 Cuantos podemos especificar. 89 00:05:29,570 --> 00:05:30,420 Eso no importa 90 00:05:31,140 --> 00:05:33,660 Y los agrupará en una matriz para nosotros. 91 00:05:34,110 --> 00:05:37,680 Así que aquí los ARG serán una matriz y puedo devolver eso en realidad. 92 00:05:38,460 --> 00:05:46,800 Y ahora, si vuelvo a ejecutar esto con dos matrices obteniendo argumentos, verán, ahora tengo mi matriz con cuatro 93 00:05:46,800 --> 00:05:47,760 argumentos aquí. 94 00:05:48,270 --> 00:05:51,120 Por lo tanto, el operador de descanso se parece al operador de propagación. 95 00:05:51,240 --> 00:05:52,080 Puntos gratis 96 00:05:52,350 --> 00:05:55,710 Y es el lugar donde lo usas lo que define cómo lo llamas. 97 00:05:56,400 --> 00:06:02,700 ¿Lo está utilizando para extraer elementos o propiedades de matrices u objetos? 98 00:06:03,090 --> 00:06:05,230 Entonces sería el operador de propagación. 99 00:06:06,090 --> 00:06:11,970 ¿Lo está utilizando para fusionar múltiples argumentos en una matriz? 100 00:06:12,750 --> 00:06:15,480 Y lo usa en la lista de argumentos de una función. 101 00:06:15,840 --> 00:06:18,030 Entonces es el operador de descanso. 102 00:06:18,480 --> 00:06:22,470 Es el mismo operador por Syntex o desde una perspectiva Syntex. 103 00:06:22,650 --> 00:06:25,710 El nombre difiere según el lugar donde lo use. 104 00:06:26,340 --> 00:06:27,360 No voy a usar eso. 105 00:06:27,360 --> 00:06:29,850 Algunos toman mucho en este curso, pero aún así es bueno saberlo. 106 00:06:30,120 --> 00:06:35,780 Pero al poder extraer elementos o propiedades, datos, algo que debes entender porque papá es un Syntex, 107 00:06:35,790 --> 00:06:38,640 me verás usar bastante durante todo el curso.