JSを勉強している中で「グローバル変数」なるものを知りました。
なにに使うの?他には何があるの?どういうところを気を付ければいいの?と調べた内容を備忘録的に記載します。
※参考サイトは一番下に記載してます。
もはやそれらサイトの中身をちょいちょいかいつまんだ内容になっております。。あくまで備忘録
グローバル変数とは
グローバル変数とは、プログラムのどこからでもアクセスできる変数。
グローバル変数の対義語として、「ローカル変数」というものがあり、ローカル変数は関数内で宣言して関数内で使用できる変数、とのことです。
グローバル変数を定義するには
①関数の外で変数の宣言をする
②varなしで変数宣言(JSでは「var」を使わずに宣言した変数はすべてグローバル変数とみなされる)
このどちらかで宣言された変数はグローバル変数となります。
グローバル変数の懸念点
var
を使わずに関数の内外どこでも宣言でき便利なようで、どこでも取り出せてどこでも再代入できてしまうため、同じ変数名が複数存在したときにバグになりやすい という懸念点があります。
varの懸念点
じゃあ関数内でvar
で宣言すればいいか?というとそうでもない。
同じ関数内であれば再代入も再宣言も可能なので、気が付いたら自分が思っていたのと違う中身になっていたそれがどこで発生している事象なのかおっかけるの大変・・・などという状況になり、予期せぬバグになりやすい。
JSで変数を使用するときは
基本的には const
を使用し、再代入が必要な変数には let
を使用する のが良いとのこと。
const
とは
const
とは値書き換えを禁止した変数を宣言する方法で、定数として一度宣言したら再代入・再宣言は不可となる。(書き換えようとするとエラーが発生するため、予期せぬバグになりにくい)
let
とは
再代入可能だが再宣言は不可。ブロックスコープ。
同じ関数内でもブロックごと分けることで再代入の影響を受けなくなる。
多少書き換えがあっても影響範囲がブロックに留まるため、どこでなにしてるかわかりやすくなる。
まとめ
指定せずグローバル変数にするのは辞めましょう。var
は自由度が高すぎるので予期せぬエラーが発生しやすい。
そのため、予期せぬエラーを防ぐ・可読性を上げるためにも変数は基本 const
再代入を行いたい場合 let
を使用する。
参考サイト
JavaScriptのグローバル変数を解説!ローカル変数と違いとは
JavaScriptでのグローバル変数の宣言方法
JavaScript初心者必見!constとは?基礎の基礎を解説!