El enstringmiento opcional ‘?.’ es una forma a prueba de errores de acceder a las propiedades de los objetos anidados, incluso si no existe una propiedad intermedia. Fue presentado recientemente por ECMA International, Comité Técnico 39 – ECMAScript, que fue escrito por Claude Pache, Gabriel Isenberg, Daniel Rosenwasser, Dustin Savery. Funciona de manera similar al enstringmiento ‘.’ excepto que no informa el error, sino que devuelve un valor que no está definido. También funciona con llamadas a funciones cuando intentamos hacer una llamada a un método que puede no existir.
Cuando queremos verificar un valor de la propiedad que se encuentra en lo profundo de una estructura similar a un árbol, a menudo tenemos que verificar si existen Nodes intermedios.
let Value = user.dog && user.dog.name;
El operador de enstringmiento opcional permite que un desarrollador maneje muchos de esos casos sin repetirse y/o asignar resultados intermedios en variables temporales:
let Value = user.dog?.name;
Sintaxis:
obj?.prop obj?.[expr] arr?.[index] func?.(args)
Nota: Si este código da algún error, intente ejecutarlo en el editor de JavaScript en línea.
Ejemplo: Enstringmiento opcional con objeto
Javascript
const user = { dog: { name: "Alex" } }; console.log(user.cat?.name); //undefined console.log(user.dog?.name); //Alex console.log(user.cat.name);
Producción:
Ejemplo: Enstringmiento opcional con llamada de función
Javascript
let user1 = () => console.log("Alex"); let user2 = { dog(){ console.log("I am Alex"); } } let user3 = {}; user1?.(); // Alex user2.dog?.(); // I am Alex user3.dog(); // ERROR - Uncaught TypeError: // user3.dog is not a function. user3.dog?.(); // Will not generate any error.
Producción:
Publicación traducida automáticamente
Artículo escrito por abhishekkharmale y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA