Uso de Optional Chaining en JavaScript ES11
Clase 26 de 35 • Curso de ECMAScript: Historia y Versiones de JavaScript
Contenido del curso
- 4

Características de ECMAScript 6 para JavaScript Moderno
15:30 - 5

Template Literals y Multilínea en ECMAScript 6
08:11 - 6

Asignación de Parámetros por Defecto en ECMAScript 6
05:46 - 7

Desestructuración de Arrays y Objetos en JavaScript ECMAScript 6
05:33 - 8

Uso del Operador de Propagación y Parámetros Rest en JavaScript
07:30 - 9
Playground: Combina objetos JSON con el Spread Operator
00:00 - 10

Asignación y manejo de objetos en ECMAScript 6
05:42 - 11

Promesas en JavaScript: Manejo del Asincronismo con ECMAScript 6
08:10 - 12

Clases y Herencia en JavaScript: Sintaxis y Aplicaciones
18:54 - 13

Uso de Módulos en JavaScript ES6
09:48 - 14
Playground: Obtén una lista de películas
00:00 - 15

Generators en JavaScript: Cómo implementar y usar iteradores personalizados
07:19 - 16
Playground: Generador de identificadores para michis
00:00 - 17

Método ADD en ECMAScript 6: Agregando Elementos a un Set
04:36
Cuando intentas acceder a propiedades de un objeto que no existen, JavaScript te retornará undefined.
const usuario = {}
console.log(usuario.redes) // undefined
Al acceder a una propiedad más profunda de un objeto, que previamente fue evaluada como undefined, el programa se detendrá y mostrará un error de tipo.
const usuario = {}
console.log(usuario.redes.facebook)
// TypeError: Cannot read properties of undefined (reading 'facebook')
Es como intentar ejecutar undefined.facebook, lo cual es un error de tipo, debido a que undefined es un primitivo, no es un objeto.
Cómo utilizar el encadenamiento opcional
El encadenamiento opcional u optional chaining (?.) detiene la evaluación del objeto cuando el valor es undefined o null antes del (?.), retornando undefined sin detener el programa por un error.
const usuario = {}
console.log(usuario.redes?.facebook)
// undefined
Pero, ¿por qué usaría propiedades de un objeto vacío? Cuando realizas peticiones, el objeto no contiene la información solicitada en seguida, por ende, necesitas que el programa no colapse hasta que lleguen los datos y puedas utilizarlos.
No abuses del encadenamiento opcional
El encadenamiento opcional se debe utilizar únicamente cuando probablemente un valor no exista.
Por ejemplo, en un objeto usuario que siempre existe, pero la propiedad redes es opcional, entonces se debería escribir usuario.redes?.facebook y no usuario?.redes?.facebook.
Si abusas del encadenamiento opcional y existe un error en un objeto, el programa podría “ocultarlo” por un undefined, provocando que el debugging sea más complicado.
Contribución creada por Andrés Guano (Platzi Contributor).