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

相關問題