พารามิเตอร์ชื่อเดียวกันใน JavaScript

ตอนนี้ให้ฟังก์ชันภายนอกและฟังก์ชันภายใน มีพารามิเตอร์ชื่อเดียวกัน:

javascriptfunction test(num) {
  function func(num) {
    console.log(num); // จะแสดง 1
  }
  
  func(num);
};

test(1);

ในกรณีนี้ภายในฟังก์ชันภายในจะมี ตัวแปรโลคัล num การเปลี่ยนแปลงมัน ภายในฟังก์ชันภายในจะไม่ส่งผลใดๆ ต่อตัวแปรภายนอก num:

javascriptfunction test(num) {
  function func(num) {
    num = 2; // เปลี่ยนตัวแปรโลคัล num
  }
  
  func(num);
  console.log(num); // จะแสดง 1 - ไม่มีอะไรเปลี่ยนแปลง
}

test(1);

ผลลัพธ์คือฟังก์ชันภายในไม่สามารถ เข้าถึงตัวแปรภายนอก num เพื่อที่จะเปลี่ยนแปลงมันได้เลย:

javascriptfunction test(num) {
  function func(num) {
    // ที่นี่ไม่สามารถเข้าถึงตัวแปรภายนอก num ได้
  }
  
  func(num);
}
test(1);
Задание 1

กำหนดว่า โดยไม่ต้องรันโค้ด อะไรจะถูกแสดง ในคอนโซล:

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

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

กำหนดว่า โดยไม่ต้องรันโค้ด อะไรจะถูกแสดง ในคอนโซล:

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

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

กำหนดว่า โดยไม่ต้องรันโค้ด อะไรจะถูกแสดง ในคอนโซล:

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

test(1);
Задание 4

กำหนดว่า โดยไม่ต้องรันโค้ด อะไรจะถูกแสดง ในคอนโซล:

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

test(1);