Samanimelised parameetrid JavaScriptis

Olgu nüüd välisel ja sisemisel funktsioonil samanimelised parameetrid:

javascriptfunction test(num) {
  function func(num) {
    console.log(num); // väljastab 1
  }
  
  func(num);
};

test(1);

Sel juhul on sisemises funktsioonis lokaalne muutuja num. Selle muutmine sisemises funktsioonis ei mõjuta kuidagi välisest muutujat num:

javascriptfunction test(num) {
  function func(num) {
    num = 2; // muudame lokaalset muutujat num
  }
  
  func(num);
  console.log(num); // väljastab 1 - midagi ei muutunud
}

test(1);

Tulemuseks on, et sisemine funktsioon ei saa mingil juhul pöörduda välise muutuja num poole, et seda muuta:

javascriptfunction test(num) {
  function func(num) {
    // siin ei saa juurdepääsu välisele muutujale num
  }
  
  func(num);
}
test(1);
Задание 1

Määrake, koodi käivitamata, mis väljastatakse konsooli:

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

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

Määrake, koodi käivitamata, mis väljastatakse konsooli:

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

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

Määrake, koodi käivitamata, mis väljastatakse konsooli:

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

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

Määrake, koodi käivitamata, mis väljastatakse konsooli:

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

test(1);