javascript打开大括号在同一行

Osc*_*Ryz 8 javascript

我记得有一个约定/建议将开括号放在同一行,因为Javascript添加分号或其他东西的方式.

//OK
function blah(){
};

//Probably not OK
function blah() 
{
};
Run Code Online (Sandbox Code Playgroud)

但我没有找到确认/否认这一点的相关来源.

这是真的?还是只是一个神话?

Roc*_*mat 24

您正在考虑的问题是return声明.

return {
  value: 'test'
}
Run Code Online (Sandbox Code Playgroud)

工作正常,但以下不是:

return
{
  value: 'test'
}
Run Code Online (Sandbox Code Playgroud)

return上述内容转换为以下内容后,JavaScript会添加分号:

return;
{
  value: 'test'
}
Run Code Online (Sandbox Code Playgroud)

  • 遗憾的是:正因为返回语句的这个问题,大多数JS代码都在使用相同的行开头括号.咩. (3认同)
  • @lorancou:嘿!我喜欢把我的开口括号放在同一条线上:-P (2认同)
  • 这显然是因为JS损坏了你;) (2认同)

Dav*_*tka 6

这篇关于优雅代码的文章给出了自动分号插入的一些解释,但是关于返回对象,而不是声明函数.


Ósc*_*pez 6

Douglas Crockford给出了选择K&R风格的理由[1]:

"我总是使用K&R风格,把{放在一行而不是前面,因为它避免了JavaScript的返回声明中可怕的设计错误.

他所指的错误是JavaScript如何在以下两种情况下以不同方式处理return语句:

return {
   'status': 'ok'
};
Run Code Online (Sandbox Code Playgroud)

......和:

return 
{
   'status': 'ok'
};
Run Code Online (Sandbox Code Playgroud)

第一个将返回一个具有status属性的对象,而后一个将返回undefined因为分号插入."

[1] Douglas Crockford:JavaScript:好的部分:风格(p.96)


Daf*_*aff 5

JavaScript的花园有一个约章自动插入分号.当自动添加分号时,它给出了很好的示例:

JavaScript不是一种不带分号的语言,它实际上需要分号才能理解源代码.因此,只要遇到由于缺少分号而导致解析错误,JavaScript解析器就会自动插入它们.

在您的示例中,JavaScript不会因为缺少分号而遇到错误.