てすと

たかろぐ

自分のログを刻みます。

グローバルオブジェクト

相変わらずjsの勉強。

ブラウザのコンソールで簡単に始められるのに、奥が深い。

今日はグローバルオブジェクトを少し見た。

グローバルオブジェクトは1つのプロセスにつき1つ存在する特別なオブジェクトで、 この中にはバージョン情報や、OS情報、環境変数などの情報が全て入っていて、プログラムのどこからでもアクセスできる。

ただし、実行する環境によってアクセスの仕方が違う。 - ブラウザ上で実行している場合はwindow - node.jsで実行している場合はglobal でアクセスできる。

ところで、jsでグローバル変数を定義するには、var/let/constなどで宣言せずに、新しい変数に値を代入すれば作れるらしい。 すると、グローバルオブジェクトのプロパティとして登録され、どこからでもアクセスできるようになる。 uxmilk.jp

ただ、この方法だと既に同じ名前の変数が同スコープ内に存在していたらただそれが上書きされるだけで、グローバル変数は生成されないから、 できればwindow.xglobal.xのように明示的に示して生成した方が良いようだ。 これ、結構ハッとしましたね。

勉強すればするほど発見があるので楽しいですね。