JS库最佳实践:返回undefined或在错误的函数输入上抛出错误?

时间:2011-12-31 17:30:32

标签: javascript coding-style

在JavaScript中编写库时,处理函数无效输入的最标准(最友好?)方法是什么?我的直觉告诉我,返回undefined非常好,但实际上抛出错误实际上更有帮助吗?或者它真的没关系?

我还可以看到返回false,null或甚至-1,但我不认为这些会被广泛期待。

(如果这个问题过于主观,我很高兴能够提出这个问题。)

3 个答案:

答案 0 :(得分:4)

我认为undefined很好但请记住:

  

JavaScript没有void类型,因此每个函数都必须返回一个   值。默认值是未定义的,除了构造函数,其中   默认返回值是这个。

因此您不需要显式返回undefined。它将是默认情况。

请参阅http://javascript.crockford.com/survey.html

答案 1 :(得分:1)

例外的好处:

  • 如果错误很少发生(在正常操作中不会出现这种情况),那么调用代码可以更容易,更快速地捕获一个更高级别位置的异常,而不是在每次API调用后测试返回值。

例外的缺点:

  • 捕获异常比测试返回值慢很多,所以如果错误是常见的,那么异常会慢得多。
  • 如果调用代码要检查它们所做的每个API调用的错误(而不是在更高级别捕获异常),那么编写每个API调用的异常比仅测试返回值更令人痛苦。 / LI>

答案 2 :(得分:0)

可能很明显 如果您扩展环境 - 至少继续他们的练习

快速回答。 如果这是浏览器中的javascript未定义就可以,如果是服务器中的javascript则会抛出错误。

<强>提高 让库用户选择行为作为选项,库全局,或逐个对象。