Глобалне променљиве и параметри функција у 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);