グローバルオブジェクト
相変わらずjsの勉強。
ブラウザのコンソールで簡単に始められるのに、奥が深い。
今日はグローバルオブジェクト
を少し見た。
グローバルオブジェクトは1つのプロセスにつき1つ存在する特別なオブジェクトで、 この中にはバージョン情報や、OS情報、環境変数などの情報が全て入っていて、プログラムのどこからでもアクセスできる。
ただし、実行する環境によってアクセスの仕方が違う。
- ブラウザ上で実行している場合はwindow
- node.jsで実行している場合はglobal
でアクセスできる。
ところで、jsでグローバル変数を定義するには、var/let/constなどで宣言せずに、新しい変数に値を代入すれば作れるらしい。 すると、グローバルオブジェクトのプロパティとして登録され、どこからでもアクセスできるようになる。 uxmilk.jp
ただ、この方法だと既に同じ名前の変数が同スコープ内に存在していたらただそれが上書きされるだけで、グローバル変数は生成されないから、
できればwindow.x
やglobal.x
のように明示的に示して生成した方が良いようだ。
これ、結構ハッとしましたね。
勉強すればするほど発見があるので楽しいですね。