Նույնական փոփոխականների անունները ֆունկցիաներում JavaScript-ում
Ենթադրենք՝ և՛ ֆունկցիայից դուրս, և՛ ներսում կա
num փոփոխականը: Այս դեպքում լոկալ
num փոփոխականի հետ կատարվող ցանկացած փոփոխություն
ոչ մի կերպ չի ազդում գլոբալ num փոփոխականի վրա:
let num = 1; // գլոբալ փոփոխական
function func() {
let num = 2; // լոկալ փոփոխական
console.log(num);
}
func(); // կանչում ենք ֆունկցիան, կարտածի 2
console.log(num); // կարտածի 1 - գլոբալ փոփոխականը չի փոխվել
Սակայն, եթե մենք մոռանանք let-ով հայտարարել լոկալ
num փոփոխականը, ապա ֆունկցիայի ներսում չի ստեղծվի
լոկալ num փոփոխական, այլ պարզապես կփոխվի գլոբալ փոփոխականը:
let num = 1;
function func() {
num = 2; // մոռացել ենք գրել let - փոխում ենք արտաքին փոփոխականը
console.log(num);
}
func(); // կանչում ենք ֆունկցիան, կարտածի 2
console.log(num); // կարտածի 2 - փոփոխականը փոխվել է
Այստեղ կարող է լինել երկու իրավիճակ՝ կամ մենք իսկապես
ցանկանում էինք փոխել գլոբալ փոփոխականը (այդ դեպքում
ամեն ինչ կարգին է), կամ մենք մոռացել ենք let-ը և
պատահաբար փոխել ենք գլոբալ փոփոխականը:
Երկրորդ դեպքը դժվարաբռնելի սխալ է, որն ուղեցություն է տալիս
սցենարի անկանխատեսելի վարքագծին: Ուստի միշտ, նոր փոփոխական
ներմուծելիս հայտարարեք այն let-ով:
Որոշեք՝ առանց կոդը գործարկելու, թե ինչ կարտածվի կոնսոլում:
let num = 1;
function func() {
num = 2;
}
func();
console.log(num);
Որոշեք՝ առանց կոդը գործարկելու, թե ինչ կարտածվի կոնսոլում:
let num = 1;
function func() {
let num = 2;
}
func();
console.log(num);