1
00:00:01,160 --> 00:00:02,480
aprendamos sobre

2
00:00:02,480 --> 00:00:07,010
una característica aún más nueva de los objetos y también de las matrices

3
00:00:07,010 --> 00:00:09,630
que se llama encadenamiento opcional.

4
00:00:09,630 --> 00:00:11,973
Y este es realmente asombroso.

5
00:00:13,290 --> 00:00:16,510
Entonces, digamos que queremos saber el horario de apertura

6
00:00:16,510 --> 00:00:19,163
de nuestro restaurante para el lunes.

7
00:00:20,160 --> 00:00:22,860
Así que vamos a comprobar rápidamente eso.

8
00:00:22,860 --> 00:00:25,077
Así que restaurant.openingHours,

9
00:00:26,510 --> 00:00:30,430
y luego, dado que estamos comprobando el lunes,

10
00:00:30,430 --> 00:00:32,600
probemos .mon.

11
00:00:32,600 --> 00:00:35,470
Entonces, ¿cuál podría representar el lunes?

12
00:00:35,470 --> 00:00:38,840
Ahora, en realidad esta propiedad no existe.

13
00:00:38,840 --> 00:00:42,840
Así que ves que esto es indefinido, ¿verdad?

14
00:00:42,840 --> 00:00:45,890
Pero hagamos como que no sabemos

15
00:00:45,890 --> 00:00:49,353
si este restaurante abre los lunes o no.

16
00:00:50,220 --> 00:00:51,280
Y ese podría ser el caso.

17
00:00:51,280 --> 00:00:55,350
Por ejemplo, si estos datos provienen de un servicio web real.

18
00:00:55,350 --> 00:00:57,120
Así que una API web.

19
00:00:57,120 --> 00:01:00,170
Y en su servicio podría haber múltiples restaurantes

20
00:01:00,170 --> 00:01:03,020
y no todos abrirían el lunes.

21
00:01:03,020 --> 00:01:05,220
Y entonces no teníamos forma de saber

22
00:01:05,220 --> 00:01:07,530
si este restaurante en particular

23
00:01:07,530 --> 00:01:10,030
abriría el lunes o no.

24
00:01:10,030 --> 00:01:12,320
Pero ahora vayamos más lejos

25
00:01:12,320 --> 00:01:15,620
porque en realidad queremos saber exactamente la hora

26
00:01:15,620 --> 00:01:19,040
en que el restaurante abre el lunes.

27
00:01:19,040 --> 00:01:20,690
Entonces, veamos qué obtenemos.

28
00:01:20,690 --> 00:01:24,220
Y ahora sí obtenemos un error

29
00:01:24,220 --> 00:01:27,640
porque los resultados de esto no estaban definidos.

30
00:01:27,640 --> 00:01:31,760
Y luego undefined.open es realmente un error.

31
00:01:31,760 --> 00:01:34,330
Así que ese es el error que tenemos aquí.

32
00:01:34,330 --> 00:01:36,820
Así que para evitar este error,

33
00:01:36,820 --> 00:01:40,930
primero tendríamos que verificar si esto aquí realmente existe.

34
00:01:40,930 --> 00:01:44,653
Así que podríamos hacer algo como esto.

35
00:01:45,530 --> 00:01:49,563
Si esta propiedad existe, básicamente haz esto.

36
00:01:50,560 --> 00:01:52,730
O también podríamos usar un operador lógico

37
00:01:52,730 --> 00:01:54,650
como ya aprendimos

38
00:01:54,650 --> 00:01:57,563
pero esto aquí es un poco más legible, ¿de acuerdo?

39
00:01:58,970 --> 00:02:01,380
Así que si hiciéramos lo mismo para

40
00:02:02,240 --> 00:02:04,160
digamos viernes,

41
00:02:04,160 --> 00:02:06,150
entonces ya sabemos que el viernes existe.

42
00:02:06,150 --> 00:02:07,600
Y entonces esto funcionaría

43
00:02:08,440 --> 00:02:09,493
y serían las 11

44
00:02:10,930 --> 00:02:12,880
Pero centrémonos aquí en el lunes,

45
00:02:12,880 --> 00:02:15,640
que es el día que no existe.

46
00:02:15,640 --> 00:02:19,220
Y ahora al menos nos deshicimos de nuestro error aquí.

47
00:02:19,220 --> 00:02:23,770
Entonces no es gran cosa tener que agregar esta lógica aquí

48
00:02:23,770 --> 00:02:27,190
pero hace que nuestro código sea un poco más ilegible

49
00:02:27,190 --> 00:02:28,630
y más desordenado.

50
00:02:28,630 --> 00:02:31,960
Sin embargo, esto es verificar solo una propiedad.

51
00:02:31,960 --> 00:02:33,950
Así que solo para el lunes.

52
00:02:33,950 --> 00:02:36,650
Pero ahora imagina que el horario de apertura aquí

53
00:02:36,650 --> 00:02:38,530
también sería opcional.

54
00:02:38,530 --> 00:02:42,220
O en otras palabras, que tal vez el objeto restaurante

55
00:02:42,220 --> 00:02:44,870
tampoco puede tener horario de apertura.

56
00:02:44,870 --> 00:02:48,600
Entonces, en este caso, tendríamos que verificar ambos, ¿no?

57
00:02:48,600 --> 00:02:49,860
Entonces tendríamos que hacer

58
00:02:51,570 --> 00:02:55,467
si restaurante.openingHours existe

59
00:02:58,630 --> 00:03:02,920
y si existen restaurants.openingHours.mon

60
00:03:02,920 --> 00:03:07,450
mientras que solo así desbloquearás el horario de apertura de la consola.

61
00:03:07,450 --> 00:03:10,230
Y esto puede salirse de control bastante rápido.

62
00:03:10,230 --> 00:03:12,560
cuando tenemos objetos profundamente anidados

63
00:03:12,560 --> 00:03:15,290
con muchas propiedades opcionales.

64
00:03:15,290 --> 00:03:18,470
Y a veces eso sucede en el mundo real.

65
00:03:18,470 --> 00:03:19,990
Y por lo tanto ES2020

66
00:03:20,990 --> 00:03:23,600
introdujo una gran solución para esto,

67
00:03:23,600 --> 00:03:27,390
que es una característica llamada encadenamiento opcional.

68
00:03:27,390 --> 00:03:29,060
Y con encadenamiento opcional,

69
00:03:29,060 --> 00:03:31,710
si una determinada propiedad no existe,

70
00:03:31,710 --> 00:03:34,530
entonces undefined se devuelve inmediatamente.

71
00:03:34,530 --> 00:03:35,990
Y entonces eso evitará

72
00:03:35,990 --> 00:03:39,110
ese tipo de error que vimos antes.

73
00:03:39,110 --> 00:03:41,270
Y así es como funciona.

74
00:03:41,270 --> 00:03:44,343
Así que vamos a recrearlo ahora con un encadenamiento opcional.

75
00:03:47,397 --> 00:03:50,290
(golpeteo del teclado)

76
00:03:50,290 --> 00:03:54,297
Así que ahora podemos decir restaurant.openingHours.mon

77
00:03:58,460 --> 00:04:01,800
y ahora aquí está el operador de encadenamiento opcional.

78
00:04:01,800 --> 00:04:03,350
Entonces, en lugar de solo un punto,

79
00:04:03,350 --> 00:04:07,820
usamos el signo de interrogación, el punto y luego abrimos.

80
00:04:07,820 --> 00:04:12,290
¿Bueno? Así es como funciona el encadenamiento opcional.

81
00:04:12,290 --> 00:04:13,970
Así que sólo si la propiedad

82
00:04:13,970 --> 00:04:17,040
eso es antes de este signo de interrogación aquí.

83
00:04:17,040 --> 00:04:19,670
Entonces, solo si el lunes existe,

84
00:04:19,670 --> 00:04:23,940
entonces esta propiedad abierta se leerá desde allí.

85
00:04:23,940 --> 00:04:24,773
¿Está bien?

86
00:04:24,773 --> 00:04:29,240
Pero si no, se devolverá inmediatamente undefined.

87
00:04:29,240 --> 00:04:32,740
Y existe aquí en realidad significa el concepto nulo

88
00:04:32,740 --> 00:04:34,600
que ya hablamos antes.

89
00:04:34,600 --> 00:04:39,600
Entonces, una propiedad existe si no es nula ni indefinida.

90
00:04:39,880 --> 00:04:40,713
¿Bueno?

91
00:04:40,713 --> 00:04:43,120
Entonces, si es cero o la cadena vacía,

92
00:04:43,120 --> 00:04:45,600
entonces todavía existe, por supuesto.

93
00:04:45,600 --> 00:04:49,300
Así que si intentamos esto ahora, nos quedamos indefinidos.

94
00:04:49,300 --> 00:04:51,760
Así que eso es exactamente lo que estaba diciendo.

95
00:04:51,760 --> 00:04:55,530
Vamos a, de nuevo, recrearlo aquí.

96
00:04:55,530 --> 00:04:57,323
sin el encadenamiento opcional.

97
00:04:58,330 --> 00:05:00,573
Sólo para ver el error de nuevo.

98
00:05:02,430 --> 00:05:05,210
Y así aquí obtendríamos el error.

99
00:05:05,210 --> 00:05:07,890
Nuevamente porque todo esto aquí es indefinido,

100
00:05:07,890 --> 00:05:11,350
y luego leemos abierto aquí desde indefinido,

101
00:05:11,350 --> 00:05:12,750
que no funciona

102
00:05:12,750 --> 00:05:17,750
Pero aquí esta siguiente operación de intentar leer abierta

103
00:05:17,820 --> 00:05:22,610
solo sucede si todo esto aquí realmente existe.

104
00:05:22,610 --> 00:05:26,390
Entonces, si no es nulo y no indefinido.

105
00:05:26,390 --> 00:05:28,820
Pero si es indefinido o nulo,

106
00:05:28,820 --> 00:05:31,283
entonces el resultado será indefinido inmediatamente.

107
00:05:32,770 --> 00:05:34,710
Así que saquemos esto de nuevo.

108
00:05:34,710 --> 00:05:38,223
Y es por eso que nos quedamos indefinidos en este momento.

109
00:05:39,720 --> 00:05:42,563
Y, por supuesto, podemos tener múltiples encadenamientos opcionales.

110
00:05:43,420 --> 00:05:46,703
Así que básicamente recreemos lo que tenemos aquí.

111
00:05:47,660 --> 00:05:49,120
Así que en este ejemplo,

112
00:05:49,120 --> 00:05:52,020
así que aquí estamos probando para ambos horarios de apertura

113
00:05:52,020 --> 00:05:54,130
y para el lunes.

114
00:05:54,130 --> 00:05:57,600
Así que estas son esencialmente las dos propiedades opcionales

115
00:05:57,600 --> 00:06:00,743
que no sabemos de antemano si existen.

116
00:06:01,920 --> 00:06:03,180
Así que el lunes es opcional,

117
00:06:03,180 --> 00:06:06,390
y es por eso que tenemos el signo de interrogación aquí básicamente,

118
00:06:06,390 --> 00:06:08,460
preguntando si existe

119
00:06:08,460 --> 00:06:11,540
y ahora podemos hacer lo mismo para el horario de apertura.

120
00:06:11,540 --> 00:06:16,180
Y ahora si restaurant.openingHours ni siquiera existe,

121
00:06:16,180 --> 00:06:19,790
bueno, entonces la propiedad del lunes ni siquiera se leerá

122
00:06:19,790 --> 00:06:23,300
y por lo tanto no obtenemos ese error.

123
00:06:23,300 --> 00:06:24,180
¿Está bien?

124
00:06:24,180 --> 00:06:25,960
Y entonces esto lo hace realmente fácil

125
00:06:25,960 --> 00:06:28,170
para prevenir todo tipo de errores

126
00:06:28,170 --> 00:06:32,290
que a veces ni siquiera esperamos.

127
00:06:32,290 --> 00:06:33,520
¿Está bien?

128
00:06:33,520 --> 00:06:37,020
Entonces, también quita todo este trabajo de hacer esto

129
00:06:38,500 --> 00:06:41,700
simplemente agregando este simple signo de interrogación allí.

130
00:06:41,700 --> 00:06:45,660
Pero ahora veamos un poco más de ejemplo del mundo real.

131
00:06:45,660 --> 00:06:48,150
Y para eso, déjame agarrar esto

132
00:06:49,400 --> 00:06:51,003
matriz de días de la semana y colóquelo aquí.

133
00:06:53,685 --> 00:06:56,685
(golpeteo del teclado)

134
00:06:58,060 --> 00:06:59,730
Vamos a llamarlo días aquí

135
00:06:59,730 --> 00:07:01,720
por lo que no es la misma variable.

136
00:07:01,720 --> 00:07:05,530
Y ahora lo que quiero hacer es recorrer esta matriz

137
00:07:05,530 --> 00:07:06,990
y luego bloquear a la consola,

138
00:07:06,990 --> 00:07:09,970
si el restaurante está abierto o cerrado

139
00:07:09,970 --> 00:07:11,871
en cada uno de los días.

140
00:07:11,871 --> 00:07:14,570
(golpeteo del teclado)

141
00:07:14,570 --> 00:07:17,860
Entonces, esa es una buena aplicación.

142
00:07:17,860 --> 00:07:20,877
de encadenamiento opcional allí mismo.

143
00:07:20,877 --> 00:07:23,780
(golpeteo del teclado)

144
00:07:23,780 --> 00:07:26,380
Entonces, comencemos simplemente iniciando sesión aquí hoy.

145
00:07:26,380 --> 00:07:29,693
solo para que puedas recordar cómo funciona este ciclo.

146
00:07:31,080 --> 00:07:34,070
Y, de hecho, ahora podemos hacer algo de código.

147
00:07:34,070 --> 00:07:36,960
con cada uno de estos días aquí.

148
00:07:36,960 --> 00:07:41,653
Entonces, ahora hagamos esencialmente lo mismo que hicimos aquí.

149
00:07:42,960 --> 00:07:45,093
Así restaurante.openingHours

150
00:07:47,280 --> 00:07:51,120
pero ahora no podemos hacer esto, ¿verdad?

151
00:07:51,120 --> 00:07:54,880
Porque este no es un nombre de propiedad real del objeto.

152
00:07:54,880 --> 00:07:58,230
Y recuerda si queremos usar un nombre de variable

153
00:07:58,230 --> 00:08:00,090
como el nombre de la propiedad,

154
00:08:00,090 --> 00:08:03,620
básicamente, necesitamos usar la notación de corchetes.

155
00:08:03,620 --> 00:08:05,640
Así que aprendimos sobre este camino de regreso

156
00:08:05,640 --> 00:08:07,290
en la sección fundamental.

157
00:08:07,290 --> 00:08:09,953
Y así que asegúrese de recordar eso.

158
00:08:11,090 --> 00:08:12,230
¿Bueno?

159
00:08:12,230 --> 00:08:15,630
Entonces, básicamente esto sería lo mismo en el primer día.

160
00:08:18,717 --> 00:08:23,717
.mon y luego .tue y así sucesivamente.

161
00:08:23,980 --> 00:08:28,973
Pero el día aquí viene dinámicamente de esta matriz.

162
00:08:30,080 --> 00:08:30,913
¿Bueno?

163
00:08:33,780 --> 00:08:38,030
Pero el encadenamiento opcional, por supuesto, también funciona con eso.

164
00:08:38,030 --> 00:08:42,820
Y ahora podemos preguntar si existe abierto, básicamente.

165
00:08:42,820 --> 00:08:45,470
Y ahora guardemos esto en una variable.

166
00:08:47,440 --> 00:08:50,370
y luego iniciemos sesión en la consola.

167
00:08:50,370 --> 00:08:52,230
Y esto aún no está completo.

168
00:08:52,230 --> 00:08:54,830
pero por ahora, veamos qué va a pasar.

169
00:08:54,830 --> 00:08:59,260
Entonces, el día y luego lo que sea el día actual

170
00:08:59,260 --> 00:09:01,523
abrimos en,

171
00:09:02,830 --> 00:09:06,293
y aquí usamos la variable abierta que acabamos de crear.

172
00:09:07,930 --> 00:09:10,173
Vamos a deshacernos de este console.log aquí.

173
00:09:12,610 --> 00:09:13,690
Bueno.

174
00:09:13,690 --> 00:09:16,500
Entonces, el lunes abrimos en undefined,

175
00:09:16,500 --> 00:09:18,730
indefinido indefinido,

176
00:09:18,730 --> 00:09:21,300
y luego de hecho el jueves, viernes y sábado,

177
00:09:21,300 --> 00:09:22,530
estamos abiertos.

178
00:09:22,530 --> 00:09:24,930
Y entonces tenemos la hora de apertura.

179
00:09:24,930 --> 00:09:27,250
que en realidad también está en el objeto.

180
00:09:27,250 --> 00:09:28,720
Solo asegurémonos.

181
00:09:28,720 --> 00:09:33,610
Entonces este está abierto 12, 11 y cero.

182
00:09:33,610 --> 00:09:36,310
Así que esencialmente está abierto las 24 horas.

183
00:09:36,310 --> 00:09:40,050
Abre a las 12 y cierra a las 24.

184
00:09:40,050 --> 00:09:41,383
Así que a medianoche otra vez.

185
00:09:42,540 --> 00:09:44,570
¿Está bien? Eso está funcionando.

186
00:09:44,570 --> 00:09:48,240
Pero ahora no queremos esto indefinido aquí. ¿Bueno?

187
00:09:48,240 --> 00:09:49,940
Y así como antes

188
00:09:49,940 --> 00:09:52,300
vamos a establecer un valor predeterminado.

189
00:09:52,300 --> 00:09:53,323
Así que usemos o,

190
00:09:57,468 --> 00:10:00,767
y por defecto, queremos decir cerrado.

191
00:10:01,690 --> 00:10:03,210
Así que estamos abiertos en cerrado.

192
00:10:03,210 --> 00:10:05,510
Así que eso no tiene mucho sentido.

193
00:10:05,510 --> 00:10:07,890
Entonces podríamos crear una oración mejor allí.

194
00:10:07,890 --> 00:10:10,300
pero dejémoslo así.

195
00:10:10,300 --> 00:10:13,620
Pero tal vez te estés dando cuenta de que ahora tenemos un problema

196
00:10:13,620 --> 00:10:17,200
que es que el sabado dice que estamos cerrados.

197
00:10:17,200 --> 00:10:19,880
Aunque en realidad abrimos

198
00:10:19,880 --> 00:10:21,730
o abre el restaurante.

199
00:10:21,730 --> 00:10:24,210
Así que aquí el sábado que es este,

200
00:10:24,210 --> 00:10:26,700
de hecho, esta propiedad existe.

201
00:10:26,700 --> 00:10:29,263
Así que hay una propiedad llamada Sábado.

202
00:10:30,290 --> 00:10:32,460
Y entonces tenemos un problema aquí.

203
00:10:32,460 --> 00:10:35,980
Y el problema es que el restaurante abre a cero.

204
00:10:35,980 --> 00:10:38,840
Y aquí tenemos el mismo problema que antes.

205
00:10:38,840 --> 00:10:41,010
donde cero es un valor falso.

206
00:10:41,010 --> 00:10:44,470
Y por lo tanto, desencadenará esta segunda parte.

207
00:10:44,470 --> 00:10:46,030
del operador

208
00:10:46,030 --> 00:10:48,640
Pero también vimos la solución a esto,

209
00:10:48,640 --> 00:10:52,050
que es usar el operador coalescente nulo.

210
00:10:52,050 --> 00:10:54,190
Y eso es lo que hacemos ahora.

211
00:10:54,190 --> 00:10:57,720
Y ahora volvemos a abrir a cero.

212
00:10:57,720 --> 00:10:58,553
Excelente.

213
00:10:58,553 --> 00:11:00,990
Entonces, este es un caso de uso increíble

214
00:11:00,990 --> 00:11:03,160
del operador de encadenamiento opcional

215
00:11:03,160 --> 00:11:06,920
y el operador coalescente nulo trabajando juntos.

216
00:11:06,920 --> 00:11:09,600
Y de hecho, se introdujeron en el lenguaje

217
00:11:09,600 --> 00:11:11,320
al mismo tiempo en ES2020

218
00:11:12,240 --> 00:11:13,920
porque realmente fueron diseñados

219
00:11:13,920 --> 00:11:16,300
para trabajar bien unos con otros.

220
00:11:16,300 --> 00:11:20,870
Entonces, nuevamente, ambos confían en este nuevo concepto de nulo

221
00:11:20,870 --> 00:11:24,850
y entonces los valores nulos son nulos e indefinidos.

222
00:11:24,850 --> 00:11:25,890
Y eso es.

223
00:11:25,890 --> 00:11:30,230
Y eso es cierto tanto para este operador coalescente nulo

224
00:11:30,230 --> 00:11:32,393
y también para encadenamiento opcional.

225
00:11:34,510 --> 00:11:36,380
Bueno. Excelente.

226
00:11:36,380 --> 00:11:38,860
Ahora que entiendes cómo funciona,

227
00:11:38,860 --> 00:11:42,720
Pasemos al siguiente tema, que trata sobre los métodos.

228
00:11:42,720 --> 00:11:45,330
Así que el encadenamiento opcional también funciona.

229
00:11:45,330 --> 00:11:46,950
para llamar a los métodos.

230
00:11:46,950 --> 00:11:48,980
Entonces, esencialmente podemos verificar

231
00:11:48,980 --> 00:11:52,453
si un método realmente existe antes de que lo llamemos.

232
00:11:53,490 --> 00:11:57,740
Entonces, restaurante.order,

233
00:11:57,740 --> 00:12:00,540
y ahora podemos comprobar si existe.

234
00:12:00,540 --> 00:12:04,800
Así que usamos el signo de interrogación, el punto, y si existe,

235
00:12:04,800 --> 00:12:06,860
entonces podemos llamarlo.

236
00:12:06,860 --> 00:12:08,913
Así que pasemos cero y uno aquí.

237
00:12:09,980 --> 00:12:12,560
Y entonces siempre deberíamos usar juntos

238
00:12:12,560 --> 00:12:14,620
el operador coalescente nulo.

239
00:12:14,620 --> 00:12:19,620
Y así, el método no existe.

240
00:12:20,290 --> 00:12:21,770
Así que ejecutemos esto

241
00:12:21,770 --> 00:12:25,040
pero en este caso, el método realmente existe.

242
00:12:25,040 --> 00:12:27,403
Y aquí tenemos el resultado esperado.

243
00:12:29,740 --> 00:12:33,430
Cuando intentamos llamar a un método que no existe.

244
00:12:33,430 --> 00:12:35,197
Así que digamos orderRisotto,

245
00:12:36,820 --> 00:12:40,410
y entonces nunca escribimos un método para eso.

246
00:12:40,410 --> 00:12:42,003
Y así, vamos a ver.

247
00:12:43,200 --> 00:12:46,770
Y sí, ahora obtenemos que el método no existe.

248
00:12:46,770 --> 00:12:48,530
Y así como antes

249
00:12:48,530 --> 00:12:50,380
este operador de encadenamiento opcional

250
00:12:50,380 --> 00:12:54,100
verificará si orderRisotto realmente existe.

251
00:12:54,100 --> 00:12:55,260
Y si no es así,

252
00:12:55,260 --> 00:12:58,630
bueno, entonces regresará inmediatamente indefinido.

253
00:12:58,630 --> 00:13:01,550
Y entonces todo esto vuelve indefinido.

254
00:13:01,550 --> 00:13:05,050
Y entonces, aquí en el operador coalescente nulo,

255
00:13:05,050 --> 00:13:08,240
inmediatamente vamos a esa segunda operante.

256
00:13:08,240 --> 00:13:09,513
Así que ese es este de aquí.

257
00:13:10,600 --> 00:13:14,630
Y sí, entonces ese es el resultado de toda esta operación.

258
00:13:14,630 --> 00:13:17,100
Por supuesto, si no tuviéramos esto,

259
00:13:17,100 --> 00:13:19,170
entonces estábamos tratando de intentar

260
00:13:19,170 --> 00:13:21,200
algo que no es una función.

261
00:13:21,200 --> 00:13:23,940
Tan realmente útil en los métodos también.

262
00:13:23,940 --> 00:13:27,433
Y finalmente, el encadenamiento opcional incluso funciona en matrices.

263
00:13:29,876 --> 00:13:32,250
(golpeteo del teclado)

264
00:13:32,250 --> 00:13:36,210
Entonces, básicamente, podemos usarlo para verificar si una matriz está vacía.

265
00:13:36,210 --> 00:13:40,880
Así que simplemente creemos una matriz de usuarios

266
00:13:40,880 --> 00:13:43,453
en el que podemos poner un par de objetos de usuario.

267
00:13:45,280 --> 00:13:47,440
Así que nombra a Jonas

268
00:13:49,569 --> 00:13:50,763
y correo electrónico,

269
00:13:52,550 --> 00:13:56,053
hola@jonas.io.

270
00:13:57,977 --> 00:13:58,810
(murmullos)

271
00:13:58,810 --> 00:14:00,040
Esto es solo para demostración.

272
00:14:00,040 --> 00:14:03,120
Así que pongamos un objeto aquí

273
00:14:05,340 --> 00:14:10,330
y ahora para obtener el nombre del primer elemento de esta matriz,

274
00:14:10,330 --> 00:14:12,680
Podemos hacer esto.

275
00:14:12,680 --> 00:14:16,750
Podemos escribir usuarios, elemento número cero

276
00:14:16,750 --> 00:14:18,930
y solo si existe.

277
00:14:18,930 --> 00:14:23,930
Entonces, el encadenamiento opcional solo toma su nombre.

278
00:14:24,320 --> 00:14:25,420
¿Bueno?

279
00:14:25,420 --> 00:14:30,420
Y de lo contrario, queremos registrar la matriz de usuario vacía.

280
00:14:32,470 --> 00:14:33,740
Entonces, veamos.

281
00:14:33,740 --> 00:14:36,450
Y de hecho tenemos a Jonas.

282
00:14:36,450 --> 00:14:39,190
Y de nuevo, este encadenamiento opcional aquí

283
00:14:39,190 --> 00:14:43,230
comprueba si el valor de la izquierda existe.

284
00:14:43,230 --> 00:14:44,973
Así que los usuarios cero.

285
00:14:47,040 --> 00:14:47,873
¿Bueno?

286
00:14:47,873 --> 00:14:48,943
Así que si estaba vacío,

287
00:14:50,440 --> 00:14:51,563
por lo que los usuarios,

288
00:14:52,460 --> 00:14:53,870
así como esto,

289
00:14:53,870 --> 00:14:56,433
luego obtenemos una matriz de usuario vacía.

290
00:14:57,520 --> 00:14:59,120
Y sin encadenamiento opcional,

291
00:14:59,120 --> 00:15:02,290
Tendríamos que escribir algo como esto.

292
00:15:02,290 --> 00:15:06,070
Así que si usuarios.longitud

293
00:15:06,070 --> 00:15:07,540
mayor es igual a cero

294
00:15:08,750 --> 00:15:10,290
luego consola.log

295
00:15:11,196 --> 00:15:12,340
y esto de aqui

296
00:15:19,407 --> 00:15:22,893
y otra consola.log,

297
00:15:24,850 --> 00:15:27,163
matriz de usuario vacía.

298
00:15:28,290 --> 00:15:29,840
¿Está bien?

299
00:15:29,840 --> 00:15:32,810
Y eso parece mucho más trabajo

300
00:15:32,810 --> 00:15:34,920
que lo que acabamos de tener allá arriba.

301
00:15:34,920 --> 00:15:37,760
Entonces, aquí no necesitamos hacer ninguna verificación.

302
00:15:37,760 --> 00:15:40,053
entonces eso es mucho mejor.

303
00:15:41,460 --> 00:15:44,433
Y ahora, en ambos casos, tenemos a Jonas.

304
00:15:45,690 --> 00:15:48,920
Por lo tanto, acostúmbrese a este operador de encadenamiento opcional,

305
00:15:48,920 --> 00:15:50,180
que casi siempre,

306
00:15:50,180 --> 00:15:54,030
los usamos junto con el operador coalescente nulo

307
00:15:54,030 --> 00:15:56,090
para que podamos hacer algo

308
00:15:56,090 --> 00:15:59,560
en caso de que no obtengamos un resultado del objeto

309
00:15:59,560 --> 00:16:02,433
o de la matriz que está aquí en el lado izquierdo.

310
00:16:03,860 --> 00:16:04,693
Está bien.

311
00:16:04,693 --> 00:16:07,803
Y dicho esto, nos vemos en el próximo video.