JavaScriptにおけるネストされた関数のスコープ

関数が内部に関数を含む場合、 外側の関数の変数は内側の関数から参照可能です:

javascriptfunction test() {
  let num = 1; // 外側の関数の変数
  
  function func() {
    console.log(num); // 1を出力
  }
  
  func(); // 内側の関数を呼び出す
}

test(); // 外側の関数を呼び出す

また、内側の関数からは、 外側の関数の外で定義された変数も参照可能です:

javascriptlet num = 1; // グローバル変数

function test() {
  function func() {
    console.log(num); // 1を出力
  }
  
  func(); // 内側の関数を呼び出す
};

test(); // 外側の関数を呼び出す
Задание 1

コードを実行せずに、 コンソールに何が出力されるかを判断してください:

javascriptfunction test() {
  let num = 1;
  
  function func() {
    console.log(num);
  }
  
  func();
}

test();
Задание 2

コードを実行せずに、 コンソールに何が出力されるかを判断してください:

javascriptfunction test() {
  let num = 1;
  
  function func() {
    console.log(num);
  }
}

test();
Задание 3

コードを実行せずに、 コンソールに何が出力されるかを判断してください:

javascriptfunction test() {
  let num = 1;
  
  function func() {
    console.log(num);
  }
  
  func();
}
Задание 4

コードを実行せずに、 コンソールに何が出力されるかを判断してください:

javascriptfunction test() {
  let num;
  
  function func() {
    console.log(num);
  }
  
  num = 1
  func();
  
  num = 2
  func();
}

test();