Tengo una pregunta. Ayudame por favor.
Tengo código en mi programa de enseñanza:
alert(user.address ? user.address.street ? user.address.street.name : null : null);Pero no puedo entender, ¿por qué usó "nulo" dos veces al final del código?
Entiendo que si user.adress - existe, luego verifique si user.address.street existe, si user.address.street - existe, luego verifique si user.address.street.name exist , si no alert - null .
Pero, ¿por qué escribió segundo null ?
Los ? operador es una forma abreviada de una asignación if-else.
alert(user.address ? user.address.street ? user.address.street.name : null : null);Es la forma abreviada de:
let res; if (user.address) { if (user.address.street) { res = user.address.street.name; } else { res = null; } } else { res = null; } alert(res);En javascript también existe el 'operador de encadenamiento opcional' que es probablemente lo que desea:
alert(user?.address?.name);Que solo accede a las propiedades de los objetos si no son nulos, de lo contrario devuelve nulo.