javascript:为什么这个return语句会导致语法错误?

Mik*_*ike 3 javascript aptana3

我正在使用Apatana 3,我稍微修改了JS代码格式化程序,让它看起来更清晰,下面是格式化后的代码,它给我一个错误:

    copyOffset : function( index )
    {
        return
        {
            x : index, y : index
        };
    }
Run Code Online (Sandbox Code Playgroud)

萤火虫给我:

SyntaxError: invalid label
Run Code Online (Sandbox Code Playgroud)

如果我改为:

    copyOffset : function( index )
    {
        return{
            x : index, y : index
        };
    }
Run Code Online (Sandbox Code Playgroud)

没问题,谁能告诉我这两个回报声明之间的区别是什么?

rai*_*7ow 7

区别在于第一个片段实际上被解释为......

copyOffset : function( index )
{
    return;
    {
        x : index, y : index
    };
}
Run Code Online (Sandbox Code Playgroud)

它被称为自动分号插入:当JavaScript解析器看到一个似乎完整的语句但是没有分号时,它会尝试"修复"它.

是的,尽管有时很有帮助,但它可能非常烦人.本文详细介绍了此JavaScript功能.