JavaScriptのグローバル変数
JavaScriptで「グローバル変数を使わないほうが良い」と言っている記事を見かけたりするので、調べてみました。
グローバル変数を使用しない方がよい理由とは、グローバル変数はウェブページやJavaScriptアプリ内にあるすべてのコードで共有できてしまう点にあるようです。
よって、サードパーティ製のライブラリやウィジットなどを導入したときに、変数が重なってしまい問題を起こす可能性があるということのようです。
できるだけ使わないようにコーディングするにはどうしたらいいかまだ把握できていませんが、気をつけねばならないことは「暗黙のグローバル」という概念があり、意図していないところでグローバル変数を作ってしまうことがあるようです。それはvarを使わずに変数を定義することです。
JavaScriptではvarを使わずに変数を作ることができますが、その場合は関数内で宣言したとしてもグローバル変数になってしまうようです。上の"l_string"はローカル変数のつもりで書いたとしても、実際は関数の外側でも参照できてしまっています。
var g_string = "global"; //グローバル変数
(function(){
l_string = "local"; //ローカル変数のつもり?
console.log(l_string); //結果:local
})();
console.log(g_string); //結果:global
console.log(l_string); //結果:local→ローカル変数でない><
このようにvarを使わずに宣言すると、闇雲にグローバル変数を作ってしまうことになるので避けましょうということのようです。