可能重複:
What are the rules for Javascript's automatic semicolon insertion?我聽說Javascript插入「;」自動可能導致問題的
我也聽說圍棋插入他們太多,但他們遵循不同的approach
如何使用Javascript在解釋時插入分號?
任何提及將是有益的
可能重複:
What are the rules for Javascript's automatic semicolon insertion?我聽說Javascript插入「;」自動可能導致問題的
我也聽說圍棋插入他們太多,但他們遵循不同的approach
如何使用Javascript在解釋時插入分號?
任何提及將是有益的
我發現的最大的事情之一就是讓我們假設你有一個返回座標的函數(或者任何對象),與此類似。
function getCoordinates() {
return
{
x: 10,
y: 10
};
}
你會期望找回對象嗎?錯誤!你回到未定義。解釋器的代碼轉換成這個
function getCoordinates() {
return;
{
x: 10,
y: 10
};
}
由於return
本身是一個有效的語句。你需要確保寫回報如下
function getCoordinates() {
return {
x: 10,
y: 10
};
}
是教我這個特殊功能的缺陷的例子是在this one「奇怪的語言功能?」題。 (這就是爲什麼我重新開放這個問題,順便說一句 - 這是一個寶貴的學習資源。)
很好的參考材料可以在這裏找到:What are the rules for Javascript's automatic semicolon insertion?
的Javascript假設語句的結束,在任何線路中斷,其中這是可能的。例如,這:
return
true;
被解釋爲:
return;
true;
轉動返回,它的參數分成兩個獨立的語句,這當然意味着該函數沒有返回值(返回未定義)。
我寫了一個blog entry關於那段時間回來。
是的,我只是張貼相同的東西。 – CaffGeek 2010-10-29 17:14:48
是的,我已經發布了相同的東西。 ;)不管怎麼樣,你*不會返回null,你會得到undefined。 – Guffa 2010-10-29 17:18:10
@Guffa,正確。並糾正。 – CaffGeek 2010-10-29 17:24:13
我離開我的生活至少40分鐘,現在很生氣。 – 2015-04-30 13:33:15