El Operador de Elvis Encadenado
Dificultad: Medio JavaScript intermediate coding
const obj = { a: { b: { c: 0 } } };
const val1 = obj?.a?.b?.c || 'default';
const val2 = obj?.a?.b?.c ?? 'default';
console.log(val1, val2); 📥 Inputs:
obj = { a: { b: { c: 0 } } }
❓ ¿Cuál es el output?
Ingresa tu respuesta abajo
💡 Explicación
¡El operador || considera 0 como falsy y retorna 'default', pero ?? (nullish coalescing) solo considera null/undefined como falsy, así que retorna 0! Esta diferencia sutil causa muchos bugs en producción cuando trabajamos con números.
¿Qué imprime val1 y val2? 🤔