Implicaciones peligrosas del estilo Allman en JavaScript

Resuelto Ajax3.14 asked hace 12 años • 5 respuestas

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é?

Ajax3.14 avatar Jun 28 '12 21:06 Ajax3.14
Aceptado

returnno puede tenerlo LineTerminatordespué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.

Esailija avatar Jun 28 '2012 14:06 Esailija

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 returndeclaraciones.

Sin embargo, si sus pautas recomiendan el estilo Allman para declaraciones de funciones, está perfectamente bien. Conozco algunos que lo hacen.

Florian Margaine avatar Jun 28 '2012 15:06 Florian Margaine

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í .

septemberbrain avatar Jun 28 '2012 14:06 septemberbrain