如何确保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是正常必须的。

Javascript6/ES6小技巧