2016-02-16 45 views
-1

幾天前我試圖在if()語句中聲明一個函數,並且我嘗試了很多方法,但沒有設法實現它。函數聲明就好像聲明條件

是否有可能做到這樣的事情?

if(!function() { return false; }) { 
    console.log("False"); 
} else { 
    console.log("True"); 
} 
+1

您傳遞的對象不爲空,因此條件的結果爲「True」。您不檢查該函數的返回值。 – Trace

+0

我的問題-3降價有什麼問題?在Google上搜索之前,我從來沒有來過這裏。 –

+0

不要讓它把你的一天搞砸,這是不值得的。 – Trace

回答

3

你可以...你只需要執行它。查詢IIFE以瞭解更多信息。

if (!(function() { return false;}())) { 
 
    console.log("False"); 
 
} else { 
 
    console.log("True"); 
 
}

的形式的函數表達式需要的是function(){}。要在調用表達式時聲明您必須將格式更改爲(function(){}())

+0

謝謝。這是我正在尋找的。 –

1

注意:此方法不工作!

這將工作:

if((function() { return false; }) !== true) { 
 
    console.log("False"); 
 
} else { 
 
    console.log("True"); 
 
}

+0

所以differencse是'==='或'!=='而不是'=='或'!='比較呢?如果我沒有記錯,這也檢查返回的類型是否相同。你能請進一步解釋一下嗎? –

+0

區別在於大括號。 – Sebastian

+1

關於這方面的一個注意,這是檢查函數是否被聲明,而不是返回值。 – Goblinlord