Javascript 从函数输出读取属性

Javascript 从函数输出读取属性,javascript,Javascript,控制台将输出 未捕获的TypeError:无法读取未定义的属性“fullName” 我从面试练习本上读到了这个问题,我不明白背后的原因,有人能帮我吗?这里的问题是在return语句之后自动插入分号 您不能将代码放在return语句后的新行上,因为javascript会自动放置与return语句位于同一行,其余代码被忽略 (函数(){ 函数sayHello(){ var name=“你好,约翰”; 返回{fullName:name}; } log(sayHello().fullName); })

控制台将输出

未捕获的TypeError:无法读取未定义的属性“fullName”


我从面试练习本上读到了这个问题,我不明白背后的原因,有人能帮我吗?

这里的问题是在
return
语句之后自动插入分号

您不能将代码放在return语句后的新行上,因为javascript会自动放置
与return语句位于同一行,其余代码被忽略

(函数(){
函数sayHello(){
var name=“你好,约翰”;
返回{fullName:name};
}
log(sayHello().fullName);
})();由于自动插入分号,解析器将以如下方式读取代码:

(function(){
  function sayHello(){
    var name = "Hi John";
    return
    {
      fullName: name
    }
  } 

  console.log(sayHello().fullName);
})();
返回//
return  ; // <---
{
  fullName: name
}