考虑这两个功能。
function func1() {
return
{
foo: 'bar'
}
}
function func2() {
return {
foo: 'bar'
}
}
alert(typeof func2()) //return object
alert(typeof func1()) //return undefined
为什么大括号的位置在许多其他语言中不重要?它是语言功能还是错误?
答案 0 :(得分:44)
因为automatic semicolon insertion。第一个代码与
相同function func1() {
return;
{
foo: 'bar'
}
}
如果您想知道为什么此代码不会产生语法错误,foo:
为label。
关于
是语言功能还是错误?
这是一个功能。但是非常危险的一个。保持它成为一种功能的最好方法是坚持一致的格式化风格(我建议使用Google style guide,直到你有足够的经验来制作自己的格式。)