სახელების დამთხვევა პარამეტრებთან JavaScript-ში

ფუნქციის პარამეტრები მისი ლოკალური ცვლადებია. მოდით, ფუნქციის პარამეტრს ვუწოდოთ იგივე სახელი, რაც გარე გლობალურ ცვლადს:

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

let num = 1;
func(num);

ამ შემთხვევაში ისე მოხდება, რომ ფუნქციის გარეთ იქნება ცვლადი num და ფუნქციის შიგნით იქნება ცვლადი num. მაგრამ ეს იქნება სხვადასხვა ცვლადი: ცვლადის შეცვლა ფუნქციის შიგნით გამოიწვევს ფუნქციის ლოკალური ცვლადის შეცვლას. გარე ცვლადი კი ფუნქციის შიგნით იქნება მიუწვდომელი და ვერ შეიცვლება არანაირად. შევამოწმოთ:

javascriptfunction func(num) {
  num = 2; // ვცვლით ლოკალურ ცვლადს
}

let num = 1;
func(num);
console.log(num); // გამოიტანს 1-ს - არაფერი შეცვლილა
Задание 1

განსაზღვრეთ, კოდის გაშვების გარეშე, რა გამოიტანს კონსოლში:

javascriptfunction func(num) {
  num = 2;
}

let num = 1;
func(num);
console.log(num);
Задание 2

განსაზღვრეთ, კოდის გაშვების გარეშე, რა გამოიტანს კონსოლში:

javascriptfunction func() {
  num = 2;
}

let num = 1;
func();
console.log(num);
Задание 3

განსაზღვრეთ, კოდის გაშვების გარეშე, რა გამოიტანს კონსოლში:

javascriptfunction func() {
  let num = 2;
}

let num = 1;
func();
console.log(num);