JavaScript本机方法默默地失败而不是抛出错误

时间:2013-03-02 18:08:42

标签: javascript exception-handling

我正在为练习编写一个JavaScript库,我正在对现有对象(如Array)上的代码进行建模。

我注意到的是array.pop(当数组为空)和array.splice(-1, -1)等方法无声地失败而不是抛出错误。为什么会这样?是不是更好的调试目的抛出错误?或者是否有一些我不知道的JavaScript最佳实践?

1 个答案:

答案 0 :(得分:2)

空数组上的

array.pop将返回类型:undefined。如果您尝试使用结果,则会引发错误。

array.splice将始终返回一个数组。如果没有删除它将返回一个空数组。

要确保这样的方法返回预期值,您应该编写单元测试。

一个简单的例子:

if( !myarray.pop() ){
    console.log( 'Error' );
}

对于更详细的单元测试,我会使用js单元测试库。我使用的是QUnit.js http://qunitjs.com/