JavaScript Function 的預設參數與驗證
Published in
2 min readNov 9, 2017
在 JavaSctipt 中,要如何做 Function 的預設參數與驗證呢?
假設題目是:
function myfunc(arg1, arg2) {
// do something ...
}
預設參數
這邊分成 ES5 與 ES6+ 可以使用的方法
// ES5
function myfunc(arg1, arg2) {
var defaultValue1 = 1;
var defaultValue2 = 2;
var a = doSomething(arg1 || defaultValue1);
var b = doSomething(arg2 || defaultValue2);
}// ES6
function myfunc(arg1 = 1, arg2 = 2) {
const a = doSomething(arg1);
const b = doSomething(arg2);
}
相信寫過 ES6+ 的人都不陌生,而且 ES6+ 的語法也相較 ES5 簡潔有力許多!
參數驗證
簡單來說,就是利用 function 來針對參數驗證,當然也分成 ES5 與 ES6+ 的差別!
// ES5
function myfunc(arg) {
if(!arg) {
return required('arg')
}
// ... do something
}// ES6+
function myfunc(arg = required('arg')) {
// ... do something
}// validation function
function required(arg) {
throw new Error(`Param ${arg} is required`);
}
ES6+ 的方式是不是更簡潔有力呢!而且不會再 function 當中有多餘的程式,非常的乾淨,趕快動手試一試吧!