1

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

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

4

1 回答 1

2

空数组上的array.pop 将返回类型:未定义。如果您尝试使用结果,它将引发错误。

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

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

一个简单的例子:

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

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

于 2013-03-02T18:27:08.390 回答