2013-12-22 37 views
6

所以有這個標題有幾十個問題,但是,我能找到的所有答案似乎都提到了一些黑客在某些特定情況下工作但在其他方面沒有幫助。許多人擔心使用jQuery或Ajax的,但問題是純JavaScript在非常基礎的層面產生:未捕獲的SyntaxError:意外的令牌返回 - 仍然沒有答案?

function f() { 
    false || (return true); 
} 

此函數聲明(不執行)拋出

Uncaught SyntaxError: Unexpected token return

在Chrome

SyntaxError: Return statements are only valid inside functions

在Safari中。但是這個功能不會:

function f() { 
    false || (a=true); 
    return true; 
} 

任何人都可以解釋這種奇怪的行爲?

回答

3

因爲return不是表達式,但它預計的表達式:

function f() { 
    return false || true; 
} 
+0

謝謝,有趣的是,我期待'返回true'來評估爲'真實' –

3

您正在使用的表達return語句,表達式,如JavaScript引擎無法評價它是不可能的。這就是爲什麼它拋出錯誤。

+0

我可以接受這兩個答案嗎? :) –

相關問題