関数中で、var文を省略して変数を宣言すると、グローバル変数になると習いました。
自分でも試してみたところ、確かにそのようになりました。
しかし、入れ子にした関数の中で同じことをすると、
以下のように、var文を用いてローカル変数を宣言したかのような結果となりました。
a = 1; function f() { var a = 2; function nest() { a = 3; return a; } return [a, nest()]; } f(); // [ 2, 3 ] a; // [ 1 ]
これは、勝手にvar文が補完されているのでしょうか。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/05 02:36
2018/02/05 02:44
2018/02/05 02:48
2018/02/05 02:50