Help us understand the problem. What is going on with this article?

JSのグローバル変数について備忘録

JSを勉強している中で「グローバル変数」なるものを知りました。
なにに使うの?他には何があるの?どういうところを気を付ければいいの?と調べた内容を備忘録的に記載します。

※参考サイトは一番下に記載してます。
もはやそれらサイトの中身をちょいちょいかいつまんだ内容になっております。。あくまで備忘録

グローバル変数とは

グローバル変数とは、プログラムのどこからでもアクセスできる変数。

グローバル変数の対義語として、「ローカル変数」というものがあり、ローカル変数は関数内で宣言して関数内で使用できる変数、とのことです。

グローバル変数を定義するには

①関数の外で変数の宣言をする
②varなしで変数宣言(JSでは「var」を使わずに宣言した変数はすべてグローバル変数とみなされる)
このどちらかで宣言された変数はグローバル変数となります。

グローバル変数の懸念点

varを使わずに関数の内外どこでも宣言でき便利なようで、どこでも取り出せてどこでも再代入できてしまうため、同じ変数名が複数存在したときにバグになりやすい という懸念点があります。

varの懸念点

じゃあ関数内でvarで宣言すればいいか?というとそうでもない。
同じ関数内であれば再代入も再宣言も可能なので、気が付いたら自分が思っていたのと違う中身になっていたそれがどこで発生している事象なのかおっかけるの大変・・・などという状況になり、予期せぬバグになりやすい。

JSで変数を使用するときは

基本的には const を使用し、再代入が必要な変数には let を使用する のが良いとのこと。

constとは

constとは値書き換えを禁止した変数を宣言する方法で、定数として一度宣言したら再代入・再宣言は不可となる。(書き換えようとするとエラーが発生するため、予期せぬバグになりにくい)

letとは

再代入可能だが再宣言は不可。ブロックスコープ。
同じ関数内でもブロックごと分けることで再代入の影響を受けなくなる。
多少書き換えがあっても影響範囲がブロックに留まるため、どこでなにしてるかわかりやすくなる。

まとめ

指定せずグローバル変数にするのは辞めましょう。
var は自由度が高すぎるので予期せぬエラーが発生しやすい。

そのため、予期せぬエラーを防ぐ・可読性を上げるためにも変数は基本 const 再代入を行いたい場合 let を使用する。

参考サイト
JavaScriptのグローバル変数を解説!ローカル変数と違いとは
JavaScriptでのグローバル変数の宣言方法
JavaScript初心者必見!constとは?基礎の基礎を解説!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした