如何确保Javascript函数有参数?
Javascript中函数参数如果为空,我们需要使用if语句进行是否为空的判断,然后同时抛错,这种比较low的检查可能会遍布很多函数中,ES6提供的参数默认值为我们优雅解决了这个问题:
function misparam() {
throw new Error('没有参数');
}
function foo(mustBeProvided = misparam()) {
return mustBeProvided;
}
当调用foo这个函数没有提供参数时,misparam()才会被调用。
> foo()
Error: 没有参数
> foo(456)
456
而如果是传统检查方式,则代码繁琐如下:
function foo(mustBeProvided) {
if (arguments.length < 1) {
throw new Error();
}
if (! (0 in arguments)) {
throw new Error();
}
if (mustBeProvided === undefined) {
throw new Error();
}
···
}
除此以外,还可以使用下面写法实现可选参数:
function foo(requiredParam, optionalParam = undefined) { ··· }
optionalParam表示可选参数,可以使用,可以不用。而requiredParam是正常必须的。