Глабальныя зменныя і параметры функцый у 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
Аднак, калі ўнутры функцыі аб'явіць
зменную num праз let, то
мы стваром такім чынам лакальную зменную
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);