ray88’s diary

お仕事で困ったとき用の自分用の覚書

javaScript スコープとその種類

JavaScript 目次 - ray88’s diary
■スコープの種類

グローバルスコープ:プロジェクト全体から参照できる
ローカルスコープ:特定の範囲のみから参照できる
関数スコープ:宣言された関数の内部からのみ参照できる
ブロックスコープ:宣言されたブロックの内部からのみ参照できる
グローバル変数・グローバル定数
 グローバル領域で宣言されており、プロジェクトのどこからでも参照可能
ローカル変数・ローカル定数
 関数内またはブロック内から参照可能な特定の範囲内からのみ参照できる変数や定数
!!重要!!
letキーワードやconstキーワードによる宣言を省略した場合
その変数は宣言された場所にかかわらず、全てグローバル変数とみなされる。
変数や定数を使用する際のletキーワードおよびconstキーワードは忘れないように気を付けること。
※なお、関数内にもスコープが存在している
 ローカル関数:ある関数内で定義されており、その関数内からの呼び出しが可能
 グローバル関数:グローバル領域に記載された関数
【サンプルコード①】

//グローバルスコープ
const msgGlobal = 'Hello Global!';

function myFunction(){
  //関数スコープ
  const msgLocal = 'Hello Local!';
  console.log('関数スコープ内で出力:',msgLocal)

  if(true){
    //ブロックスコープ
    const msgBlock = 'Hello Block'
    console.log('ブロックスコープ内で出力:',msgBlock)
  }    
}

//出力可能
console.log(msgGlobal);
//以下2つの定数はスコープ外なのでエラーとなる
//console.log(msgLocal);
//console.log(msgBlock);