2010-10-29 56 views

回答

12

我发现的最大的事情之一就是让我们假设你有一个返回坐标的函数(或者任何对象),与此类似。

function getCoordinates() { 
    return 
     { 
      x: 10, 
      y: 10 
     }; 
} 

你会期望找回对象吗?错误!你回到未定义。解释器的代码转换成这个

function getCoordinates() { 
    return; 
     { 
      x: 10, 
      y: 10 
     }; 
} 

由于return本身是一个有效的语句。你需要确保写回报如下

function getCoordinates() { 
    return { 
      x: 10, 
      y: 10 
     }; 
} 
+2

是的,我已经发布了相同的东西。 ;)不管怎么样,你*不会返回null,你会得到undefined。 – Guffa 2010-10-29 17:18:10

+0

@Guffa,正确。并纠正。 – CaffGeek 2010-10-29 17:24:13

+3

我离开我的生活至少40分钟,现在很生气。 – 2015-04-30 13:33:15

4

的Javascript假设语句的结束,在任何线路中断,其中这是可能的。例如,这:

return 
true; 

被解释为:

return; 
true; 

转动返回,它的参数分成两个独立的语句,这当然意味着该函数没有返回值(返回未定义)。

我写了一个blog entry关于那段时间回来。

+2

是的,我只是张贴相同的东西。 – CaffGeek 2010-10-29 17:14:48