JavaScript格式:必须括号与if/function/etc关键字在同一行吗?

jez*_*mck 4 javascript formatting code-formatting curly-braces

可能重复:
为什么在javascript代码中放置大括号时结果会有所不同

我们有公司政策规定在PHP开放花括号应该在他们自己的行上以便于阅读,以便他们可以与结束括号对齐; 从而:

if (true)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

但在JS中,它们应保持在同一行,以防浏览器错误地解释它时出现问题.

if (true) {
    ...
Run Code Online (Sandbox Code Playgroud)

上述斜体部分是否合法?

PS - 我怀疑这个问题已经在这里被问过了,但是我没有找到与我的问题完全匹配的问题.道歉,如果它在那里,我没有找到它.

Luk*_*keH 12

是的,在某些特殊情况下这很重要.

问题不在于"浏览器错误地解释它".根据ECMAScript规范,狡猾的行为是正确的.没有出现此行为的JavaScript实现将不符合规范.

一个例子.这个功能坏了:

function returnAnObject {
    return
    {
        foo: 'test'
    };
}
Run Code Online (Sandbox Code Playgroud)

它应该返回一个对象,但实际上什么都不返回.JavaScript解释如下:

function returnAnObject {
    return;
    {
        foo: 'test'
    };
}
Run Code Online (Sandbox Code Playgroud)