我不记得在哪里,但最近我通过了一条评论,其中用户说 1TBS 在 JavaScript 中比 Allman 更受欢迎,并说 Allman 在 JavaScript 中具有危险的含义。
这是一个有效的声明吗?如果是这样,为什么?
我不记得在哪里,但最近我通过了一条评论,其中用户说 1TBS 在 JavaScript 中比 Allman 更受欢迎,并说 Allman 在 JavaScript 中具有危险的含义。
这是一个有效的声明吗?如果是这样,为什么?
return
不能LineTerminator
在它之后所以:
return
{
};
被视为return;
(return undefined
) 而不是return {};
(return an object)
这是一个有效的声明。
因为 JavaScript 的引擎有所谓的 ASI(自动分号插入),它会在必要时在行返回时插入分号。“如有必要”是模棱两可的;有时它起作用有时不起作用。见规则。
所以,正如其他答案中所说:
return
{
};
// Is read by the JavaScript engine, after ASI, as:
return; // returns undefined
{ // so this is not even executed
};
所以不推荐用于return
语句。
但是,如果您的指南推荐函数声明的 Allman 风格,那完全没问题。我知道一些这样做。
我认为这取决于声明。例如,如果左大括号在新行上,则 return 语句可能会被破坏。 更多信息在这里。
return {
a: "A",
b: "B"
};
// vs.
return // Semicolon automatically inserted here! Uh oh!
{
a: "A",
b: "B"
}