Estoy tratando de reducir la complejidad ciclomática, pero esta es una consulta general. si la función b no devuelve nada, la función a debería continuar devolviendo 3
function a() { return b(); return 3 } function b() { if (false) return 2 } alert(a())Más manualmente, podría almacenar el resultado de b() en una variable, verificar la variable y return o continuar condicionalmente. Aunque en esta versión simplificada también puede confiar en el operador coalescente nulo al regresar.
Por ejemplo:
function a() { return b() ?? 3; } function b() { if (false) return 2 } alert(a()) Esencialmente, la expresión se resuelve en el resultado de b() o, si ese resultado es null o undefined , se resuelve en 3 . Luego se devuelve el resultado de esa expresión general.
Eso funciona con mi prueba, " console.log not alert "
function a() { let val = b() return val == null ? 3 : val; } function b() { if (false) return 2; return null; // If anytings doesnt return that function we returns null } alert(a());Prueba de rendimiento para operador nulo o una línea estándar si https://jsbench.me/ool12lcckh