【ES6 】ES6 解構賦值--函數參數解構賦值


  • 函數的參數也可以使用解構賦值。
    function add([x, y]){
      return x + y;
    }
    
    add([1, 2]); // 3

    上面代碼中,函數add的參數表面上是一個數組,但在傳入參數的那一刻,數組參數就被解構成變量xy。對於函數內部的代碼來說,它們能感受到的參數就是xy

  • [[1, 2], [3, 4]].map(([a, b]) => a + b);

默認值

  • function move({x = 0, y = 0} = {}) {
      return [x, y];
    }
    
    move({x: 3, y: 8}); // [3, 8]
    move({x: 3}); // [3, 0]
    move({}); // [0, 0]
    move(); // [0, 0]

    上面代碼中,函數move的參數是一個對象,通過對這個對象進行解構,得到變量xy的值。如果解構失敗,xy等於默認值。

  • function move({x, y} = { x: 0, y: 0 }) {
      return [x, y];
    }
    
    move({x: 3, y: 8}); // [3, 8]
    move({x: 3}); // [3, undefined]
    move({}); // [undefined, undefined]??????
    move(); // [0, 0]??????

    上面代碼是為函數move的參數指定默認值,而不是為變量xy指定默認值,所以會得到與前一種寫法不同的結果。

  • [1, undefined, 3].map((x = 'yes') => x);
    // [ 1, 'yes', 3 ]

    undefined就會觸發函數參數的默認值。

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM