Javascript函数,在每种情况下都不返回值

M4N*_*M4N 3 javascript

如果我有一个javascript函数,我可能不会从每个代码路径返回一个值,例如:

function f()
{
  if (checkSomething())
  {
    return 42;
  }
  // no return statement here
}
Run Code Online (Sandbox Code Playgroud)

这是有效的JavaScript还是只是偶然工作(即在某些浏览器中运行时可能会出现问题)?

sla*_*ppy 12

是的,这是有效的JavaScript.如果checkSomething()评估为false,则返回undefined.

有关详细信息,请参阅http://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope.

尽管如此,你应该注意到返回不同类型的数据(在这种情况下,整数或者undefined)是不好的做法.

  • +1,但任何虚假的东西; 0等,而不仅仅是假. (3认同)