今週やったこと(2/12~2/18)

今週やったこと

毎週変わらず、先週と大きく変わりません。
・演習問題を解く
・javascriptの学習
今週もjavascriptのメモまとめをかるく書きたいと思います。
今日は実行コンテキストについてです。

実行コンテキストについて

実行コンテキストとは、「コードが実行される文脈や状況」とのこと。。
あんまりピンこなかったので、図で書くと以下になるようなイメージという感じでいったん理解しました。
実行される状況でコンテキストが変わるということで状況というのが実行環境でブラウザやnode.js上など、で変わるものといったイメージです。
実行コンテキストに含まれるものは以下が該当する
・コード
・this
・グローバルオブジェクト(windowオブジェクト、globalオブジェクト)

実行コンテキストの種類

大きく分けて3種類あるが、evalコンテキストは非推奨なのでいったん覚えなくてよい
・グローバルコンテキスト
・関数コンテキスト
・evalコンテキスト

グローバルコンテキスト

htmlからscriptで呼ばれるmain.jsのjavascriptが実行されるコードや実行環境のこと
グローバルコンテキストで利用できるのは実行中のコンテキスト内で定義されている関数や変数、this、グローバルオブジェクト(windowやglobal)

<script src="main.js"></script>
// main.jsの中身
let a  = 0; // グローバルコンテキスト内で定義された変数
console.log(a);

const hoge = () =>{}; // グローバルコンテキスト内で定義された関数
hoge();

関数コンテキスト

関数実行時に生成されるコンテキストとなっている
使用できるのは、関数内で定義された変数や関数のほかにarguments、super、this、外部変数がある

コンテキストの言葉の定義が難しいので、mainで実行されているファイルがグローバルコンテキスト、関数が関数コンテキストというざっくりイメージを持っておくのが自分の中ではわかりやすいのかなと思いました。
今日はここまで

この記事が気に入ったらサポートをしてみませんか?