Phạm vi hiển thị của hàm lồng nhau trong JavaScript

Nếu một hàm chứa bên trong nó một hàm khác - các biến của hàm bên ngoài sẽ hiển thị được ở hàm bên trong:

javascriptfunction test() {
  let num = 1; // biến của hàm bên ngoài
  
  function func() {
    console.log(num); // sẽ in ra 1
  }
  
  func(); // gọi hàm bên trong
}

test(); // gọi hàm bên ngoài

Đồng thời, trong hàm bên trong cũng sẽ nhìn thấy các biến được định nghĩa bên ngoài hàm bên ngoài:

javascriptlet num = 1; // biến toàn cục

function test() {
  function func() {
    console.log(num); // sẽ in ra 1
  }
  
  func(); // gọi hàm bên trong
};

test(); // gọi hàm bên ngoài
Задание 1

Xác định, không chạy code, xem điều gì sẽ được in ra console:

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

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

Xác định, không chạy code, xem điều gì sẽ được in ra console:

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

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

Xác định, không chạy code, xem điều gì sẽ được in ra console:

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

Xác định, không chạy code, xem điều gì sẽ được in ra console:

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

test();