Implicaciones peligrosas del estilo Allman en JavaScript
No recuerdo dónde, pero recientemente envié un comentario en el que el usuario decía que 1TBS es más preferido que Allman en JavaScript y dijo que Allman tiene implicaciones peligrosas en JavaScript.
¿Fue una declaración válida? Si es así, ¿por qué?
return
no puede tenerlo LineTerminator
después así:
return
{
};
se trata como return;
(devolver undefined
) en lugar de return {};
(devolver un objeto)
Consulte las reglas para Automatic Semicolon Insertion (ASI)
obtener más información.
Es una declaración válida.
Porque los motores de JavaScript tienen lo que se llama ASI (Inserción automática de punto y coma) que inserta un punto y coma si es necesario en los retornos de línea. El "si es necesario" es ambiguo; a veces funciona y otras no. Ver las reglas .
Entonces, como se dice en las otras respuestas:
return
{
};
// Is read by the JavaScript engine, after ASI, as:
return; // returns undefined
{ // so this is not even executed
};
Por lo que no se recomienda para return
declaraciones.
Sin embargo, si sus pautas recomiendan el estilo Allman para declaraciones de funciones, está perfectamente bien. Conozco algunos que lo hacen.
Creo que depende de la declaración. Por ejemplo, una declaración de devolución podría romperse si la llave de apertura está en una nueva línea. Más información aquí .