გლობალური ცვლადები და ფუნქციების პარამეტრები JavaScript-ში

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

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

დავუშვათ, ფუნქციის გარეთ არის ცვლადი num:

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

let num = 1; // გარე გლობალური ცვლადი

გამოვიძახოთ ჩვენი ფუნქცია და მივაწოდოთ მას პარამეტრად ცვლადი num:

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

let num = 1;
func(num); // ვიძახებთ ფუნქციას პარამეტრით, გამოიტანს 1-ს

ამის შედეგად, ფუნქციის შიგნით იქნება ხელმისაწვდომი როგორც ცვლადი localNum (ფუნქციის პარამეტრი), ასევე ცვლადი num (როგორც გარე ცვლადი):

javascriptfunction func(localNum) {
  console.log(num); // გამოიტანს 1-ს
  console.log(localNum); // გამოიტანს 1-ს
}

let num = 1;
func(num);

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

javascriptfunction func(localNum) {
  
}

let num = 1;
func(num); // ვიძახებთ ფუნქციას პარამეტრით
console.log(localNum); // დააბრუნებს შეცდომას

რადგან ცვლადი localNum ლოკალურია, მასთან ნებისმიერი ცვლილება არაფერს შეცვლის გარედან:

javascriptfunction func(localNum) {
  localNum = 2; // არაფერს ცვლის გარედან
}

let num = 1;
func(num);

თუ კი შიგნით შევცვლით ცვლადს num (გლობალური), მაშინ ცვლილებები გამოჩნდება გარედანაც:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num); // გამოიტანს 2-ს

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

javascriptfunction func(localNum) {
  let num = 2; // განვაცხადოთ let-ის საშუალებით
}

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

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

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

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

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

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

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

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

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

let num = 1;
func(num);
num = 2;
Задание 4

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

javascriptlet num = 1;

function func(localNum) {
  console.log(localNum);
}

num = 2;
func(num);
Задание 5

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

javascriptfunction func(localNum) {
  localNum = 2;
}

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

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

javascriptfunction func(localNum) {
  num = 2;
}

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

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

javascriptfunction func(localNum) {
  let num = 2;
}

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