ขอบเขตการมองเห็นของฟังก์ชันซ้อนใน 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();