はじめてのprototype.jsの前に知っておくべきことがあった2

スコープについて

javascriptのスコープはブロックでくくられてても関係ない。ファンクション単位。

var a = 10;
if (true) {
  var a = 20;
  alert(a); // 20
}
alert(a); // 20
var f = function() {
  var a = 10;
  alert(a); // 10
}();

グローバルオブジェクトについて

var a = 10;
alert(window.a);

グローバル変数はwindowオブジェクト(グローバルオブジェクト)のプロパティになる。
また、関数内で明示的にvarを書かないで初期化すると、windowオブジェクトになる。

function func() {
  a = 10;
};
func();
alert(window.a);

関数の引数について

function func() {
  for (var i = 0; i < arguments.length; i ++) {
    alert(arguments[i]);
  }
};
func(1,2,3) // 1,2,3 を順に表示

関数を定義したときの引数の個数にかかわらず、任意個数の引数値を渡すことができる。
渡された引数はargumentsオブジェクトに格納される。