2019/09/13
function的傳統定義方式
// function declarationfunction times(a, b) { return a * b; }var times = times(1,2);因為在javascript中如果是var,可以重新定義。但如果用const,function的名稱就不能重複了。
// function declarationfunction times(a, b) { return a * b; }const t = times(1,2);利用function expression的時候就沒這個問題了
// named function expressionsconst times = function times(a,b) { return a * b;}可以省略function的名稱
// unnamed function expressionconst times = function (a,b) { return a * b;}兩種方法的使用還是有差別的,function的定義是可以寫在後面,也可以被重複呼叫。
times(3,4);function times(a,b) { return a * b;}用expression的話,就不能這樣呼叫了!!
times(3,4);//times not definedconst times = function (a,b) { return a * b;}arrow function是個在ES6之後的新語法,是較精簡的寫法,對新手而言,是個不容易理解的語法。
ES5 (unnamed function expression)
const times = function (a,b) { return a * b;}ES6: Arrow function (省略 大括號時,也省略return,計算結果就是回傳值)
const times = (a,b) => a*b;function *numberToN(N) { for (let i = 0; i < N; i ++) { yield i; }}