Implicações perigosas do estilo Allman em JavaScript

Não me lembro onde, mas recentemente eu passei um comentário onde o usuário disse que 1TBS é mais preferido do que Allman em JavaScript e disse que Allman tem implicações perigosas em JavaScript.

Foi uma afirmação válida? Se sim, porque?

return não pode ter o LineTerminator assim:

 return { }; 

é tratado como return; (return undefined ) em vez de return {}; (retornar um object)

Veja as regras para Automatic Semicolon Insertion (ASI) para mais.

É uma declaração válida.

Porque os mecanismos do JavaScript têm o que é chamado ASI (Automatic Semicolon Insertion), que insere um ponto-e-vírgula, se necessário, nas linhas retornadas. O “se necessário” é ambíguo; às vezes funciona e às vezes não funciona. Veja as regras .

Então, como dito nas outras respostas:

 return { }; // Is read by the JavaScript engine, after ASI, as: return; // returns undefined { // so this is not even executed }; 

Portanto, não é recomendado para declarações de return .

No entanto, se suas diretrizes recomendam o estilo de Allman para declarações de function, é perfeitamente adequado. Eu conheço alguns que fazem.

Eu acho que depende da declaração. Por exemplo, uma instrução de retorno pode ser quebrada se a chave de abertura estiver na nova linha. Mais informações aqui .

 return { a: "A", b: "B" }; // vs. return // Semicolon automatically inserted here! Uh oh! { a: "A", b: "B" }