演習のために JavaScript ライブラリを作成しており、Array などの既存のオブジェクトでコードをモデル化しています。
私が気付いたのは、array.pop
(配列が空の場合)のようなメソッドarray.splice(-1, -1)
が、エラーをスローする代わりにサイレントに失敗することです。なぜそうなのですか?デバッグ目的でエラーをスローする方がよいのではないですか? または、私が知らなかった JavaScript のベスト プラクティスはありますか?
演習のために JavaScript ライブラリを作成しており、Array などの既存のオブジェクトでコードをモデル化しています。
私が気付いたのは、array.pop
(配列が空の場合)のようなメソッドarray.splice(-1, -1)
が、エラーをスローする代わりにサイレントに失敗することです。なぜそうなのですか?デバッグ目的でエラーをスローする方がよいのではないですか? または、私が知らなかった JavaScript のベスト プラクティスはありますか?
空の配列の array.pop は type: undefined を返します。結果を使用しようとすると、エラーがスローされます。
array.splice は常に配列を返します。何も削除されていない場合は、空の配列が返されます。
このようなメソッドが期待値を返すことを確認するには、単体テストを作成する必要があります。
簡単な例:
if( !myarray.pop() ){
console.log( 'Error' );
}
より詳細な単体テストを行うには、js 単体テスト ライブラリを使用します。私が使用したのは QUnit.js http://qunitjs.com/です