Javascript函数是否通常故意返回未定义的值?

Joe*_*e B 9 javascript

我是Javascript的新手,我想知道是否故意从函数中返回undefined值是一种常见的做法.

例如,应该像这样实现divide()函数:

var divide1 = function (x, y) {
    if (y === 0) {
        return undefined;
    }

    return x/y;
};
Run Code Online (Sandbox Code Playgroud)

或者像这样?

var divide2 = function (x, y) {
    if (y === 0) {
        throw new Error("Can't divide by 0");
    }

    return x/y;
};
Run Code Online (Sandbox Code Playgroud)

我假设返回undefined通常保留给没有返回值的函数(相当于Java或C#中的void).

Aar*_*lla 3

这是默认的:

function foo() {}
console.log(foo());
Run Code Online (Sandbox Code Playgroud)

但事实证明这不是一个好的选择。可能会进入异常状态的代码不应该默默地这样做。JavaScript 中的许多错误都被忽视了,因为当出现问题时代码不会剧烈破坏。

因此,除非您是一位非常优秀的开发人员,并且您可以保证每个接触此代码的人都处于同一水平并且您永远不会犯错误,否则您可以返回undefined。我自己会抛出一个例外。

事实证明我不是一个足够好的开发人员:-)