Web/JS part.4 で「変数宣言で var を付けないとどうなるのか」といった質問が出ていたので調べつつ考察してみました。 (フォローアップ講習会参加の方々には現在の講習内容を逸脱しますが、そのうち詳しくフォローして行きます。) var は明示的に変数を宣言するためのステートメントです。 関数のボディ内部にステートメントがある場合、その関数に対するローカルスコープを持つ変数を宣言した事になります。 それ以外の場合は、グローバルオブジェクトのメンバ変数になります。 また var で宣言したプロパティは DontDelete 属性を持ち、従って delete 演算子で削除出来ません(”delete operand” が false を返す)。 もう一つポイントになるのが関数評価の仕組みです。