function a(){ return { "bar":1 } } a()
返回:{bar: 1}
function b(){ return { "bar":1 } } b() 报错:Uncaught SyntaxError: Unexpected token :
原理:
把大括号{放在一行的结尾而不是下一行的开头,因为它会避免在JavaScript的return语句中的一个可怕的设计错误。
javascript有一个自动修复机制——在程序可能有缺陷的时候,自动插入分号补全,但这个机制很不靠谱,常常会掩盖一些错误。
比如:
return {
hello:"world";
};
正常的理解是返回一个字面量构成的对象。
但是如果这么写:
return
{
hello:"world"
};
javascript的自动补全会将上面代码变成:
return;
{
hello:"world"
};
实际返回一个undefined,这种错误不会有任何提示。