表達式的簡單定義是「可以解析爲值的東西」。 語句的簡單定義是「可執行的代碼塊」。函數聲明(語句)在技術上也是函數表達式嗎?
考慮到這一點,因爲下面的函數可以解析爲6的值,那麼它是否也是表達式而不是語句,或者兩者都有?
function ii() {
return 6;
}
ii();
表達式的簡單定義是「可以解析爲值的東西」。 語句的簡單定義是「可執行的代碼塊」。函數聲明(語句)在技術上也是函數表達式嗎?
考慮到這一點,因爲下面的函數可以解析爲6的值,那麼它是否也是表達式而不是語句,或者兩者都有?
function ii() {
return 6;
}
ii();
通過自己的引用,沒有。該函數本身並不解決任何問題,它只是返回一個已解決的值。這只是一個聲明。
您正在定義該功能。這使得它成爲一個聲明。是的,你可以說調用函數「解析」它到輸出,但它只觸發輸出。
值更像是一個表達式。它不可執行,它只是是。
吸氣既是表達和陳述集於一身:
Object.defineProperty(window, "ii", { get: function() { return 6 }});
// Returns '6'
ii;
ii = 7;
// Logs '6' because setting 'ii' does not change the resolution function.
console.log(ii);
函數聲明定義了一個函數應該做的,如下:
function ii() {
return 6;
}
當該函數被調用爲在下面,它變成函數表達式:
if (ii()) {
console.log("true");
}
else
{
console.log("false");
}
你也可以有一個函數基於聲明,表達式如下:
(function iii() {
console.log(3);
}()
)
以下表示另一種表達的,對於一個值被指定的函數聲明:
var a = function iv() {
return 5;
}
關於此主題的一個有趣的讀取是here。
可能的重複http://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression-vs-declaration-in-javascrip –
可能的重複[有什麼區別在JavaScript中的函數表達式與聲明之間?](http://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression-vs-declaration-in-javascrip) –
函數不解析爲6值。你爲什麼這麼說?當你調用它時你得到的值是6,但函數聲明不會產生一個值。 –