稍微有过一点JS编程经历的人都知道,JS中的函数,即便是缺少了参数也不会报错,例如
function add(x, y){
return x + y;
}
console.log(add()); //NaN
add
函数中并没有传参数,但是可以正常运行不会报错。那如果想要像C/C++或其他一些语言一样在缺少参数的时候会报错该怎么办呢?
ES6规范中允许开发者为函数的参数设置默认值,而这个默认值可以是一个函数。当参数的值为undefined
时,那么默认值就会生效。
换句话说,当没有传参数的时候(参数就为undefined),设置的默认值就会生效。
而我们又可以把默认值设为一个函数,那么就可以在这个函数里抛出一个错误,提示缺少参数、
function ifMissing(){
throw new Error('缺少参数');
}
function add(x=ifMissing(), y=ifMissing()){
return x + y;
}
console.log(add()); //Error:缺少参数