es6函数的扩展
// 寫法一
function m1({x = 0, y = 0} = {}) {return [x, y];
}// 寫法二
function m2({x, y} = { x: 0, y: 0 }) {return [x, y];
}
上面兩種寫法都對函數的參數設定了默認值,區別是寫法一函數參數的默認值是空對象,但是設置了對象解構賦值的默認值;寫法二函數參數的默認值是一個有具體屬性的對象,但是沒有設置對象解構賦值的默認值。
// 函數沒有參數的情況 m1() // [0, 0] m2() // [0, 0]// x和y都有值的情況 m1({x: 3, y: 8}) // [3, 8] m2({x: 3, y: 8}) // [3, 8]// x有值,y無值的情況 m1({x: 3}) // [3, 0] m2({x: 3}) // [3, undefined]// x和y都無值的情況 m1({}) // [0, 0]; m2({}) // [undefined, undefined]m1({z: 3}) // [0, 0] m2({z: 3}) // [undefined, undefined]轉載于:https://www.cnblogs.com/sakura-sakura/p/6678450.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: 1119: 零起点学算法26——判断奇偶
- 下一篇: 1131: 零起点学算法38——求阶乘和