Parametry o tej samej nazwie w JavaScript

Załóżmy teraz, że funkcja zewnętrzna i wewnętrzna mają parametry o tej samej nazwie:

javascriptfunction test(num) {
  function func(num) {
    console.log(num); // wyświetli 1
  }
  
  func(num);
};

test(1);

W tym przypadku wewnątrz funkcji wewnętrznej będzie istniała zmienna lokalna num. Jej zmiana w funkcji wewnętrznej w żaden sposób nie wpłynie na zewnętrzną zmienną num:

javascriptfunction test(num) {
  function func(num) {
    num = 2; // zmieniamy zmienną lokalną num
  }
  
  func(num);
  console.log(num); // wyświetli 1 - nic się nie zmieniło
}

test(1);

Okaże się, że funkcja wewnętrzna w żaden sposób nie będzie mogła uzyskać dostępu do zewnętrznej zmiennej num, aby ją zmienić:

javascriptfunction test(num) {
  function func(num) {
    // tutaj nie można uzyskać dostępu do zewnętrznej zmiennej num
  }
  
  func(num);
}
test(1);
Задание 1

Określ, bez uruchamiania kodu, co zostanie wyświetlone w konsoli:

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

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

Określ, bez uruchamiania kodu, co zostanie wyświetlone w konsoli:

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

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

Określ, bez uruchamiania kodu, co zostanie wyświetlone w konsoli:

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

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

Określ, bez uruchamiania kodu, co zostanie wyświetlone w konsoli:

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

test(1);