Recientemente me encontré con este poco de lógica JS:
close(focusAfter) { if (! this.open) return; this.open = false; focusAfter && focusAfter.focus(); }, La verificación de veracidad de focusAfter se usa claramente como un condicional en línea para asegurarse de que exista un objeto/elemento válido antes de llamar a .focus() en él.
Me parece que la lógica equivalente podría aclararse cuando se reescribe como:
if (focusAfter) focusAfter.focus(); Mi pregunta es: ¿hay alguna ventaja "no inmediatamente obvia" en la ejecución booleana en línea que se muestra en el ejemplo original en comparación con escribir explícitamente una declaración if en línea para "envolver" la lógica ejecutada (en este caso, focusAfter.focus() )?