4

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

我们的公司政策规定,在PHP中,左大括号应该在自己的行中以提高可读性,以便它们可以与右大括号对齐;因此:

if (true)
{
    ...
}

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

if (true) {
    ...

上述斜体部分是否合理?

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

4

2 回答 2

13

是的,这在某些极端情况下很重要。

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

一个例子。此功能已损坏:

function returnAnObject {
    return
    {
        foo: 'test'
    };
}

它应该返回一个对象,但实际上什么也没返回。JavaScript 是这样解释的:

function returnAnObject {
    return;
    {
        foo: 'test'
    };
}
于 2010-10-18T15:15:45.057 回答
4

JS 中的解释,通常是当你有没有分号的行时,它默认添加在行尾。为了避免这种情况并增加可读性,大括号通常与 IF、WHILE、Function 等添加在同一行。

据我所知,JS中的这个特性被称为隐式分号插入。

于 2010-10-18T15:10:35.210 回答