🌐
Javascript基礎Ⅱ
スコープ
実行中のコードから値と式が参照できる範囲
- グローバルスコープ
- スクリプトスコープ
- 関数スコープ
- ブロックスコープ
- モジュールスコープ
let a= 0;
var b = 0;
function c(){}
グローバルスクリプト、スクリプトスコープ
Scriptには
let const を定義すると
a:0 が見える
Global (Windowオブジェクトが格納されている varやfunctionで定義した場合は
b: 0
c: f c()
let a= 0;
var b = 0;
function c(){}
//結果は同じ windowオブジェクトがグローバルスコープの為
//グローバルコンテキストは省略できる
console.log(window.b);
console.log(b);
関数スコープ、ブロックスコープ
関数スコープ
function a() {
let b = 0;
console.log(b);
}
a();
//--------------------------
//エラーが出る、関数の中のみ取得が可能だから
//スコープの外で読んでいる為 console.log(b);
function a() {
let b = 0;
}
console.log(b);
a();
### ブロックスコープ
{}で囲むことをいう
function{}は
functionと定義している為ブロックスコープではない
変数の宣言では、 let, const を使用すること
{
let c = 1;
console.log(c);
}
//--------------------------
//エラーが出る
{
let c = 1;
}
console.log(c);
### レキシカルスコープ
コードをかく場所によって参照できる変数が変わるスコープのこと!
コードをき誦すした時点で決定する為静的スコープともいう3
let a = 2;
function fn1() {
let b = 1;
function fn2() {
let c = 3;
}
fn2();
}
fn1();
グローバルスコープ
- a
- fn1
関数スコープ(fn1)※グローバルスコープ- b
- fn2
関数スコープ(fn2) ※グローバルスコープ,関数スコープ(fn1)- c
Discussion