嚴格模式 從 ES5開始,函數內部可以設定為嚴格模式。ES2016做了一些修改,規定只要函數參數使用了預設值、解構賦值、或者擴展運算符,則該函數內部就不能顯式設定為嚴格模式,否則會報錯。 這樣規定是因為函數內部的嚴格模式,同時適用於函數體和函數參數,但 函數在執行的時候,先執行函數參數,然後再執行函 ...
嚴格模式
從 ES5開始,函數內部可以設定為嚴格模式。ES2016做了一些修改,規定只要函數參數使用了預設值、解構賦值、或者擴展運算符,則該函數內部就不能顯式設定為嚴格模式,否則會報錯。
這樣規定是因為函數內部的嚴格模式,同時適用於函數體和函數參數,但 函數在執行的時候,先執行函數參數,然後再執行函數體,這樣就有一個不合理的地方,只有從函數體之中,才能知道參數是否應該以嚴格模式執行,但是參數卻應該先於函數體執行。
尾調用 及 尾調用優化
尾調用(Tail Call)是函數式編程的一個重要概念,就是指某個函數的最後一步是調用另一個函數。