--- tags: ES6, Javascript disqus: hackmd --- # [JS]函式參數預設值(Default Function Parameters) ***IE 最新版瀏覽器 IE11 目前還不支援 Default Function Parameters。*** ES5 不能直接為函數的參數指定預設值,只能採用變通的方法。 ```javascript= function multiply(a, b) { b = (typeof b !== 'undefined') ? b : 1; return a * b; } multiply(5, 2); // 10 multiply(5, 1); // 5 multiply(5); // 5 ``` 判斷type是否為`'undefined'`的原因為預防如果b有傳值但是對應的boolean值為false,而走到`b : 1`的1的問題。可以看下面這個範例 ```javascript= function log(x, y) { y = y || 'World'; console.log(x, y); } log('Hello') // Hello World log('Hello', 'Taiwan') // Hello Taiwan log('Hello', '') // Hello World ``` ES6 允許為函數的參數設置默認值,即直接寫在參數定義的後面。 ```javascript= function multiply(a, b = 1) { return a * b; } multiply(5, 2); // 10 multiply(5, 1); // 5 multiply(5); // 5 ```