Dangerous implications of Allman style in JavaScript
我不记得在哪里,但最近我通过了评论,其中用户告诉1TBS在JavaScript中比Allman更受欢迎,并且说Allman在JavaScript中有危险的含义。
这是一个有效的陈述吗? 如果是这样,为什么?
1 2 3 4 5 | return { }; |
被视为
有关详细信息,请参阅
这是一个有效的声明。
因为JavaScript的引擎具有所谓的ASI(自动分号插入),如果需要在行返回时插入分号。"如有必要"是模棱两可的; 有时它有效,有时则无效。 查看规则。
所以,正如其他答案所说:
1 2 3 4 5 6 7 8 | return { }; // Is read by the JavaScript engine, after ASI, as: return; // returns undefined { // so this is not even executed }; |
因此不建议用于
但是,如果您的指南推荐Allman样式的函数声明,那就完全没问题了。 我知道有些事情。
1 2 3 4 5 6 7 8 9 10 11 12 | return { a:"A", b:"B" }; // vs. return // Semicolon automatically inserted here! Uh oh! { a:"A", b:"B" } |
我认为这取决于声明。 例如,如果open brace在新行上,则return语句可能会被破坏。 更多信息在这里。