function foo1() {
return {
bar: "hello"
};
}
function foo2() {
return
{
bar: "hello"
};
}
console.log(foo1());
console.log(foo2());
Run Code Online (Sandbox Code Playgroud)
我可以解释为什么即使代码看起来相同,这两个函数会打印出不同的结果吗?
自动分号插入
引用规范,
当
continue
,break
,return
,throw
,或yield
令牌遇到和LineTerminator被下一个标记之前遇到,分号之后自动插入continue
,break
,return
,throw
,或yield
令牌.
所以代码将变成这样
function foo2() {
return; // Note the `;` after `return`
{
bar: "hello"
};
}
Run Code Online (Sandbox Code Playgroud)
该return
语句终止,然后有一个对象,这是一个基本上无法访问的代码.由于return
语句没有明确返回任何内容,undefined
因此将返回.
归档时间: |
|
查看次数: |
152 次 |
最近记录: |