JavaScript Function 的預設參數與驗證

Ryan Hsu
Its Ok to Make Mistakes
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 當中有多餘的程式,非常的乾淨,趕快動手試一試吧!

參考資料

--

--