javascriptの関数内で定義した変数の扱い

javascriptの関数内で定義した変数の扱いって独特。 varをつけるかどうかで、変数の有効範囲が変わる。
例えば

function() {
var x = 7;
y = 19;
}

上のように関数内で変数を定義する。

すると、関数の外からは、yの中身19は呼び出せるけど、xの中身7は呼び出せない。

javascriptの関数内では、変数を定義するとき、varをつけて定義すると、ローカル関数になり、varを付けないで定義するとグローバル変数になる。らしい。

このことを知らなかったため、余裕で3時間は費やしして泣きそうになった。

自分が使っているjavascriptの初心者用の本には、このことには触れていなくて、varは省略してもいいとしか書いてなかった。

varを省くと全部グローバル関数になるんだから、varは全部省略すればいいと、初心者としては思うんですけど、プログラムが複雑になると、変数が重なったりするから、基本的には関数内では、varをつけてローカル関数にしておいたほうが良いらしいです。


広告

コメントを残す