はじめに
コンテキストについて学習したので備忘録を残します。
初学者です。
間違っている箇所がありましたら申請お待ちしております。
コンテキストってなに?
JavaScriptでの意味
実行コンテキスト(コードを実行する際の文脈・状況)
コンテキストには3種類ある
覚えるべきは2つ
グローバルコンテキスト
関数コンテキスト
evalコンテキストは不要 関数eval自体が非推奨のため
グローバルコンテキスト
使用可能な値
- 実行中のコンテキスト内の変数・関数
- グローバルオブジェクト
- this
関数コンテキスト
使用可能な値
- 実行中のコンテキスト内の変数・関数
- arguments
- super(特殊な環境でのみ使用可能)
- this
- 外部変数
実際のコードで確認しよう
コメントアウトをみてね
// グローバルコンテキスト JavaScriptファイル内直下の実行環境(変数や関数)
let a = 0;
function b() {
console.log(this, arguments, a); //これに加えてsuperと外部変数が使える(外部変数 = 関数の外の変数)
// b();の関数コンテキスト
}
b();
// 関数コンテキスト 関数{}の中の実行環境 (波括弧の中)
// thisやargumentsは実行される環境によって取得する値が違う
まとめ
コンテキストとはコードを実行する際の文脈・状況
グローバルコンテキスト
jsファイル直下の関数や変数
- 実行中のコンテキスト内の変数・関数
- グローバルオブジェクト
- this
関数コンテキスト
関数の中括弧の中
- 実行中のコンテキスト内の変数・関数
- arguments
- super(特殊な環境でのみ使用可能)
- this
- 外部変数