Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ES6-函示與作用域

Avatar for KuoGeorge KuoGeorge
May 04, 2018
37

 ES6-函示與作用域

讀書會分享 - 從es6開始的 Javascript 學習生活

Avatar for KuoGeorge

KuoGeorge

May 04, 2018

Transcript

  1. 箭頭函式(Arrow Function) const sum = (a, b) => a +

    b const sum = function(a, b){ return a + b; }
  2. 箭頭函式(Arrow Function) const sum = (a, b) => a +

    b const sum = function(a, b){ return a + b; }
  3. 箭頭函式(Arrow Function) ([param] [, param]) => { statements } //

    花括號 { } 是有意義的,如果函式沒回傳東⻄就要使⽤花括號, 反之則不使⽤。 param => expression // 只有單⼀個參數時,可不⽤()。
  4. 箭頭函式(Arrow Function) // 未加花括號 (x, y) => x+y function (x,

    y) { return x + y; }; // 有加花括號 (x, y) => { x+y }
  5. 箭頭函式(Arrow Function) // 未加花括號 (x, y) => x+y function (x,

    y) { return x + y; }; // 有加花括號 (x, y) => { x+y } (function (x, y){ x + y; }
  6. 預設參數值 function sum(x, y){ x = x || 10; y

    = y || 20; console.log( x + y); } sum(); //30 sum(2, 3); //5 sum(2); //22 sum(null, 3); //13 ES5
  7. 預設參數值 function sum(x, y){ x = x || 10; y

    = y || 20; console.log( x + y); } sum(); //30 sum(2, 3); //5 sum(2); //22 sum(null, 3); //13 function sum(x = 11, y =6){ console.log( x + y); } sum(); //17 sum(2, 3); //5 sum(2); //8 sum(null, 3); //3 ES5 ES6
  8. 參數傳入運算式 function bar(val) { return y + val; } function

    foo(x = y+3, z = bar(x)) { console.log( x + z); } var y = 5; foo();
  9. 函式作為傳入參數 const addOne = function(value){ return value + 1 }

    const addOneAndTwo = function(value, fn){ return fn(value) + 2 } console.log(addOneAndTwo(10, addOne)) //13
  10. 函式不固定傳入參數 function sum(x, y, z) { return x+y+z } console.log(sum(1,

    2, 3)) //6 console.log(sum(1, 2)) //NaN console.log(sum(1, 2, 3, 4)) //6 console.log(sum(‘1’, ‘2’, ‘3’)) //123 console.log(sum(‘1’, ‘2’)) //12undefined console.log(sum(‘1’, ‘2’, ‘3’, ‘4’)) //123 函數傳入參數時,沒有預設值的時候會視為undefined值