🦓
JavaScriptのスコープの種類
作成日:
2022/01/15
1
JavaScriptのスコープは5種類ある。
- グローバルスコープ
- scriptスコープ
- 関数スコープ
- ブロックスコープ
- モジュールスコープ
結論として、、let
やconst
を使おう。
詳しくは本文に↓↓
グローバルスコープ
= 一番外側にあるスコープ
= windowオブジェクト
var a = 1; → scriptスコープ
lef b = 1; → グローバルスコープ
const b = 1; → scriptスコープ
debugger;
を用いて、devツールのsourcesで確認可能。
関数スコープ
= 関数内のスコープ
function(){}
内
ブロックスコープ
= {}
で区切られた中のスコープ
注意点
let
,const
でしかブロックスコープは適用されない。var
を使うとグローバルスコープ(windowオブジェクト)に適用されてしまう(①参照)- 変数宣言はブロックスコープが有効だが、関数宣言では無効化される(①)
- ただし、関数宣言でも
let
やconst
などに格納されていれば、ブロックスコープが適用となる(②参照)
①ブロックスコープが意味をなさないケース
※これは全て表示・実行されてしまう
{
var c = 1;
var d = function() {
console.log('ddd');
}
//関数宣言(letやconstに格納されていない)
function e() {
console.log('eee')
}
}
console.log(c);
d();
e();
②ブロックスコープが適用されるケース
※ブロック外では表示・実行できない
※let
やconst
を使おう
{
let c = 1;
let d = function() {
console.log('ddd');
}
let e = function() {
console.log('eee')
}
}
console.log(c);
d();
e();
事業会社にてコーダーをしています。制作は6年目。
インプットしたことをアウトプットしています。