実行コンテキスト①
JavaScriptのコードが実行されるまで
JSのコードはJSエンジンで実行されます。 そして、コード実行前にはJSエンジンで予め準備されているものがあります。
JSエンジン
- コード
- グローバルオブジェクト
- this
グローバルオブジェクトはブラウザ上ではWindowオブジェクトになります! そのWindowオブジェクトの中にWeb APIs が含まれています。
実際にブラウザ上で確認してみました(><)ノ
適当にindex.html
ファイルとmain.js
ファイルを作成し、main.js
には何もコード書いていない状態でindex.html
ファイルを開き、検証ツールでconsoleを出して
consoleの中にwindow
と入力すると、windowオブジェクトがたくさん出てきました!
この中にはWeb APIs(ブラウザを操作するもの)も含まれています。
↑
main.js
ファイルには何もコードが書かれていないけど、デベロッパーツールのconsoleにwindow
と打つとwindowオブジェクトが表示されています
次に、 this
も打ってみると、同じようにwindowオブジェクトが表示されました。
this
はオブジェクトへの参照を保持しているそうなのですが、コンテキストによって、取得できる値は変わってきます!
ここでの大切なポイントは、
- JS実行前にはグローバルオブジェクトとthisが準備される
- ブラウザのグローバルオブジェクトはWindowオブジェクトとなる
そして、グローバルオブジェクトは JSエンジンによって生成されるコード内のどこからでもアクセスできるオブジェクトのことです !
大事なことなのでメモメモ(><)ノ