გლობალური ცვლადები და ფუნქციების პარამეტრები JavaScript-ში
დავუშვათ, გვაქვს ფუნქცია, რომელიც პარამეტრად იღებს რიცხვს:
function func(localNum) {
console.log(localNum);
}
დავუშვათ, ფუნქციის გარეთ არის ცვლადი num:
function func(localNum) {
console.log(localNum);
}
let num = 1; // გარე გლობალური ცვლადი
გამოვიძახოთ ჩვენი ფუნქცია და მივაწოდოთ მას
პარამეტრად ცვლადი num:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num); // ვიძახებთ ფუნქციას პარამეტრით, გამოიტანს 1-ს
ამის შედეგად, ფუნქციის შიგნით იქნება ხელმისაწვდომი
როგორც ცვლადი localNum (ფუნქციის პარამეტრი),
ასევე ცვლადი num (როგორც
გარე ცვლადი):
function func(localNum) {
console.log(num); // გამოიტანს 1-ს
console.log(localNum); // გამოიტანს 1-ს
}
let num = 1;
func(num);
თავად ცვლადი localNum იქნება ფუნქციის
ლოკალური ცვლადი და არ იქნება ხელმისაწვდომი გარედან:
function func(localNum) {
}
let num = 1;
func(num); // ვიძახებთ ფუნქციას პარამეტრით
console.log(localNum); // დააბრუნებს შეცდომას
რადგან ცვლადი localNum ლოკალურია,
მასთან ნებისმიერი ცვლილება არაფერს შეცვლის
გარედან:
function func(localNum) {
localNum = 2; // არაფერს ცვლის გარედან
}
let num = 1;
func(num);
თუ კი შიგნით შევცვლით ცვლადს num
(გლობალური), მაშინ ცვლილებები გამოჩნდება გარედანაც:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num); // გამოიტანს 2-ს
თუმცა, თუ ფუნქციის შიგნით let-ის საშუალებით განვაცხადებთ
ცვლადს num, მაშინ
ჩვენ ამ გზით შევქმნით ლოკალურ ცვლადს
num, რომელიც არანაირად არ იმოქმედებს გარე
ცვლადზე:
function func(localNum) {
let num = 2; // განვაცხადოთ let-ის საშუალებით
}
let num = 1;
func(num);
console.log(num); // გამოიტანს 1-ს - არაფერი შეცვლილა
განსაზღვრეთ, კოდის გაშვების გარეშე, რა გამოიტანს კონსოლში:
function func(localNum) {
console.log(localNum);
}
func(1);
განსაზღვრეთ, კოდის გაშვების გარეშე, რა გამოიტანს კონსოლში:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
განსაზღვრეთ, კოდის გაშვების გარეშე, რა გამოიტანს კონსოლში:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
განსაზღვრეთ, კოდის გაშვების გარეშე, რა გამოიტანს კონსოლში:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
განსაზღვრეთ, კოდის გაშვების გარეშე, რა გამოიტანს კონსოლში:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
განსაზღვრეთ, კოდის გაშვების გარეშე, რა გამოიტანს კონსოლში:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
განსაზღვრეთ, კოდის გაშვების გარეშე, რა გამოიტანს კონსოლში:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);