我不明白为什么以下函数不会返回{bar:" hello"}而是返回undefined。
function foo2() {
return
{
bar: "hello"
};
}
答案 0 :(得分:5)
那是因为它因为javascript的自动分号插入而编译到下面。
function foo2() {
return; // notice the semi-colon here?
{
bar: "hello"
};
}
自调用return;
以来,函数终止而不转到下一行代码。
为了使其正常工作,只需将return
后面的开始括号放在return {
使用分号比使用分号更好。想要理由吗?看看Dangers of Javascript's automatic semicolon insertion
答案 1 :(得分:1)