今日知ったTypeError/URIErrorとFunction.length/arguments.lengthについて

JavaScriptに組み込みエラーオブジェクト(って呼び名でいいのか?)として

  • TypeError
  • URIError

があるのを知らなかった……
Errorくらいしか使ったことなかった。SyntaxErrorとかはたまに見るから知ってたけど。


あとFunction.lengthとarguments.lengthの違いについて。

Function.length 関数の引数の個数
arguments.length 関数が受け取った引数の個数

Function.lengthは存在すら知らなかったよ!


例として、

// Function.length
(function () {}).length;      // 0
(function (a) {}).length;     // 1
(function (a, b) {}).length;  // 2

// arguments.length
function a() {
  console.log(arguments.length);
}

a();      // 0
a(1);     // 1
a(1, 2);  // 2

という感じ。なんか面白そうなことできそうかも。