エラーコンソール

この中では代入文を使っても変数にアクセスが出来ない。

入力:a=1
応答:1
入力:a+1
応答:Error: a is not defined

varを使うとその直後だけ変数が使える。ただし一度参照すると消える。

入力:var a=1
応答:なし
入力:a+1
応答:2
入力:a+1
応答:Error: a is not defined

関数定義でも同じ現象になる。

入力:function f(x){return x+1}
応答:なし
入力:f(1)
応答:2
入力:f(1)
応答:Error: f is not defined

謎な挙動だなあ。
もしかしたらなにか応答を返すまでは入力が続いている、という扱いなんだろうか。

入力:var a=1
応答:なし
入力:function f(x){return x+1}
応答:なし
入力:f(a)
応答:2
入力:f(a)
応答:Error: f is not defined

なんかそんな気がする。